Problème upload fichier en PHP
Résolu
pedro68
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
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
<?
// 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
A voir également:
- Problème upload fichier en PHP
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
2 réponses
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 )
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 :
- 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.
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.