Aller au contenu

Envoyer un fichier sur l'hebergement


ZeDevil

Sujets conseillés

Bonjour à tous !

Je cherche à savoir comment je pourrais faire pour envoyer un fichier pdf ou doc chez mon hébergeur en étant sur une page internet.

Je vous explique :

J'ai un dossier précis ou je stock des fichiers chez mon hébergeur.

Depuis une page de mon site, je veux pouvoir aller sur mon disque dur, choisir un fichier, et l'envoyer dans ce dossier précis.

Je ne sais pas comment faire, et si il existe deja des chose la dessus.

Je vous demande donc votre aide.

Merci à vous, et bonne journée !

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Il fait d'abord faire un formulaire avec un champ de type "file" : c'est un champ qui permet à l'utilisateur de choisir un fichier sur son disque dur. Il faut aussi préciser l'enctype du formulaire. Ce qui donne :

<form action="truc.php" method="post" enctype="multipart/form-data">
<label for="fichier">Fichier : </label>
<input type="file" id="fichier" name="fichier" />
<input type="submit" value="Envoyer" />
</form>

Ensuite, dans truc.php, tu récupères le fichier avec $_FILES[] et tu l'enregistres avec move_uploaded_file() :

$fichier = $_FILES['fichier'];
// Vérifications / validation
move_uploaded_file($fichier['tmp_name'], "destination/fichier.pdf");

Avant l'enregistrement, il faut vérifier que le fichier envoyé est correct (bon format, taille maximale, droits de l'utilisateur, etc). Toutes les infos le concernant sont stockées dans $fichier. Par exemple pour connaître son nom : $fichier['name']. Son type mime : $fichier['type'], etc...

Et il faut bien sûr remplacer "destination/fichier.pdf" (dans l'exemple ci-dessus) par le chemin et le nom de ton choix.

Lien vers le commentaire
Partager sur d’autres sites

Rha oui ca devrait etre bon, j'ai testé, mais j'avais laissé le "." !

Merci Ernestine !

EDIT : Je viens d'essayer, mais je ne trouve pas mon fichier de test.pdf dans le dossier ?

Modifié par ZeDevil
Lien vers le commentaire
Partager sur d’autres sites

as-tu mis le dossier en CHMOD 777 ? car sinon, le deamon web ne saura rien créer dedans.

Au pire, tu peut faire une simple condition savoir si ça a fonctionné, du genre


move_uploaded_file($fichier['tmp_name'], $fichier['name']) or die("pas ok");
echo "ok";

si tu vois "pas ok", le déplacement du fichier a échoué.

Lien vers le commentaire
Partager sur d’autres sites

Oui, bien sur le voilà :

1er fichier :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Envoie de fichiers</title>

</head>

<body>

<table width="800" border="0">
<tr>
<td colspan="2" align="center">Pour envoyer un fichier, cliquer sur Parcourir, puis envoyer une fois le fichier selectionné.</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="2" align="center"><form action="envoie2.php" method="post" enctype="multipart/form-data">
<label for="fichier">Fichier : </label>
<input type="file" id="fichier" name"fichier" />
<input type="submit" value="Envoyer" />
</form></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>

2eme fichier :


<p><a href="envoie.php">Retour</a></p>
<p> </p>
<?php

$fichier = $_FILES['fichier'];
// Vérifications / validation
move_uploaded_file($fichier['tmp_name'], $fichier['name']) or die("pas ok");
echo "ok";


?>

Modifié par ZeDevil
Lien vers le commentaire
Partager sur d’autres sites

Oui, et j'avais édité mon message une heure ou deux après.

Cela dit, il ne faut jamais se contenter de copier-coller, il faut lire entièrement ce qu'on copie, et le comprendre, sinon, ça ne sert à rien... Un simple coup de validateur aurait permis de relever cette erreur, et aurait ainsi éviter ce long débug.

ZeDevil : la prochaine fois, merci d'utiliser les balises CODE et /CODE pour copier du code.

Lien vers le commentaire
Partager sur d’autres sites

Oui, Ernestine, je m'en suis rendu compte après que j'aurais mettre dans les balises...... :unsure:

(J'ai corrigé mon erreur ;):P )

J'ai lu et relu mais la 2eme partie pensant que c'était là d’où venait l'erreur mais en fin de compte, c'était dans la 1ere partie.

En tout cas, merci pour votre aide, comme à chaque fois que je viens, c'est toujours avec plaisir que je vous retrouve.

Modifié par ZeDevil
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Si tu autorises des utilisateurs à uploader des fichiers, il faut bien prendre en compte l'aspect sécurité.

Dans le pire des cas, si n'importe qui peut placer n'importe quel script php dans un répertoire où il peut lancer son exécution, bonjour les dégats. Evidemment si tu es le seul à avoir accès au script qui fait les uploads, il n'y a pas de souci.

Jean-Luc

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Jeanluc !

Non je ne suis pas le seul, bien sur ça n'est pas sécurisé, mais il n'y aura que 2 personnes de confiance y ayant accès.

Mais bien sur la page se trouve dans un dossier, et il est toujours possible de tomber dessus par hasard......

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...