Problème upload fichier en PHP [Résolu/Fermé]

Signaler
Messages postés
6
Date d'inscription
mercredi 22 août 2012
Statut
Membre
Dernière intervention
19 septembre 2012
-
 Utilisateur anonyme -
Bonjour, j'ai récupérer un code PHP d'upload de fichier PHP que voici:

<?
// Taille maximum
$MAX_FILE_SIZE = 150000;

// Dossier de destination du fichier
$folder = "./";

// Tableau array des différents types
$allowed_types = array("image/bmp", "image/gif", "image/pjpeg", "image/jpeg", "image/jpg", "multipart/x-zip", "video/msvideo");

// Variables récupérée par methode POST du formulaires
$fname = $HTTP_POST_FILES['fichier']['name'];
$ftype = $HTTP_POST_FILES['fichier']['type'];
$fsize = $HTTP_POST_FILES['fichier']['size'];
$ftmp = $HTTP_POST_FILES['fichier']['tmp_name'];

// Diverses test afin de savoir si :
// Le format de fichier correspond à notre tableau array
if(!in_array($ftype, $allowed_types)){$error = 1;}

// La taille du fichier n'est pas dépassée
if($fize > $MAX_FILE_SIZE){$error = 2;}

// Le fichier n'existe pas déjà
if(file_exists($folder."m_".$fname)){$error = 3;}

// Si tout va bien, c'est bien déroulé
if(copy($ftmp,''.$folder.''.$fname.'')) {$error = 0;}

// Switch servant simplement à la gestion des erreures
switch($error){
case'0':
echo("Fichier correctement envoyé.");
break;
case'1':
echo("Format de fichier incorrecte.");
break;
case'2':
echo("Fichier trop volumineux.");
break;
case'3':
echo("Fichier déjà existant.");
break;
}
?>



Seulement quand je modifie la partie du code du dossier de destination, je remplace donc le "./" par "upload" qui est le nom du dossier que j'ai créer sur le FTP et malgré cela tous les fichiers que j'uploade sont stockés dans la racine ( la ou se trouve le fichier PHP )

Je ne comprend pas... Merci d'avance de m'aider à élucider mon problème :D



2 réponses

Messages postés
1189
Date d'inscription
dimanche 3 janvier 2010
Statut
Membre
Dernière intervention
4 août 2018
215
As-tu essayé de remplacer ./ par upload/ ? ( le slash est important dans ce cas si, car si tu ne l'as pas mis, ca peut être la cause du problème )
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 87674 internautes nous ont dit merci ce mois-ci


Bonjour

C'est sûr, le chemin que tu mets dans $folder doit se terminer par un /

Mais il y a deux autres choses qui me choquent :
if(copy($ftmp,''.$folder.''.$fname.'')) {$error = 0;} 

- Le fichier téléchargé doit être déplacé avec move_uploaded_file, pas recopié avec copy
- Il manque un else pour donner une valeur à $error si le problème intervient à ce niveau.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 87674 internautes nous ont dit merci ce mois-ci