[PHP] move-uploaded-file...

Résolu/Fermé
Jules - 21 juin 2007 à 15:29
hafidodido Messages postés 40 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 11 octobre 2008 - 26 août 2008 à 16:32
Salut tout le monde,
J'ai un souçi avec un petit script pour un upload de fichier... tout ce qu'il de plus banal mais ...

Voiçi le code php :
if(!empty($_POST['fichier'])) // Je verifie qu'il y a bien un fichier à uploader
	{
  if(!empty($type1) && !empty($periode1) && !empty($locataire1)) // Si tout les champs sont remplis
  {
  $fichierup1 = $_FILES['fichier1']['name']; // On definie les variables
  $type1 = $_POST['type1'];
  $periode1 = $_POST['periode1'];
  $locataire1 = $_POST['locataire1'];
  $extension1 = $_POST['extension1'];
  
  	$nomfichier1 = "$type1-$locataire1.$extension1"; // Je crée un nom de fichier ( ex: Contrat-NomDuLocataire.doc ou .xls )

  	$chemin = "contrats/$periode1/"; // je definie le dossier où sera uploadé le fichier ($periode1 est un nombre de 1 à 10)
  
  	$resultat = move_uploaded_file($_FILES['fichier1']['tmp_name'], $chemin . $nomfichier1); // upload...
  	
  	if ($resultat) // On verifie le resultat ect...
  	{
  	?><br /><span class="texte"><strong>Le fichier n°1 a été bien été uploadé.</strong></span><br /><?
  	}
  	else
  	{
  	?><br /><span class="texte"><strong>L'upload du fichier n°1 a echoué.</strong></span><br /><?
  	}
  }
  else
  {
  ?><br /><span class="texte"><strong>Veuillez remplir tout les champs du fichier n°1 et vous assurer que le fichier est bien de type "Word" ou "Excel".</strong></span><?
  }
	}


Vous remarquerez que c'est du bricolage ;) C'est uniquement pour 3 utilisateurs : moi et mes frères alors pas de souçi de sécurité ni de verification du fichier.
Vous l'aurez deviné, l'upload echoue..
J'ai testé : tout fonctionne jusqu'à l'upload ! Ce n'est donc pas un problème de path ni de nom de fichier.. J'ai un script quasi identique (juste les variables qui changent) sur une autre page et ça fonctionne......

Voiçi l'extrait concerné du formulaire :
<tr valign="middle">
  <td align="center" width="20">
  <span class="texte"><strong>1</strong></span>
  </td>
  <td align="center">
  <input type="file" size="15" class="input" name="fichier1" id="fichier1">
  </td>
  <td align="center">
  <select class="input" name="type1" id="type1">
  <option value="Contrat">CONTRAT</option>
  <option value="Attestation">ATTESTATION</option>
  <option value="Courrier">COURRIER</option>
  </select>
  </td>
  <td align="center">
  <select class="input" name="extension1" id="extension1">
  <option value="doc">WORD</option>
  <option value="xls">EXCEL</option>
  </select>
  </td>
  <td align="center">
  <input class="input" type="text" name="periode1" id="periode1" size="1">
  </td>
  <td align="center">
  <input type="text" class="input" size="20" name="locataire1" id="locataire1">
  </td>
	</tr>


Dernière chose : normalement il peut y avoir 3 fichier à uploader donc 3 input type="file" .. j'ai remarqué que de cette manière je ne peux traiter qu'un seul fichier à la fois mais ça c'est un autre problème que je reglerais plus tard :)

(Je me sers de la variable $fichierup1 plus tard ... mais je ne sais pas si cette ligne est obligatoire "$fichierup1 = $_FILES['fichier1']['name'];" pour l'upload.)

Si vous avez une idée j'en ai bien besoin ... Merci d'avance !

Jules.
A voir également:

1 réponse

hafidodido Messages postés 40 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 11 octobre 2008 10
Modifié par 00lina00 le 24/07/2010 à 00:34
Slt
Verifiez si vous avez utilisé POST ou GET. il faut utiliser POST.
et verifier aussi que le type des mimes est 'multipart/form-data'.
c-à-d

<form enctype="multipart/form-data" action="unepage.php" method="POST">

et voici un exemple d'utilisation de move_uploaded_file

<?php

if(isset($_FILES['uploaded'])){
$target = "chemin/".basename($_FILES['uploaded']['name']) ;
print_r($_FILES);

if(move_uploaded_file($_FILES['uploaded']['tmp_name'],$target)) echo "OK!";

}
else{
echo "<form enctype='multipart/form-data' action='' method='POST'>";
echo "File:<input name='uploaded' type='file'/><input type='submit' value='Upload'/>";
echo "</form>";
}

?>
0