Upload fichier vers serveur : Probléme php
Utilisateur anonyme
-
benj -
benj -
Bonjour,
J'ai un petit probléme avec un script qui permet d'envoyé des fichier vers mon serveur.
Voici le code :
L'upload se fait parfaitement mais le fichier est renomé pour prendre le numéro de l'ID, jusque ici tout va bien.
Mais il n'y a pas l'extension. Je voudrais que le fichier se nomme :
Mais je ne sais pas comment faire.
Merci
J'ai un petit probléme avec un script qui permet d'envoyé des fichier vers mon serveur.
Voici le code :
<!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" xml:lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>Lucasweb</title> <meta http-equiv="Cache-Control" content="no-cache" /> <style type="text/css" media="all">@import "./css/css.css"; </style> <script type="text/javascript" src="java/xdir.js"></script> </head> <body> <?php include('menu.html') ?> <?php if(isset($_GET['id'])){ //recup de lid posté en GET par le lien $file = $_GET['id']; } // Taille maximum $MAX_FILE_SIZE = 150000; // Dossier de destination du fichier $folder = "./photo/"; // Tableau array des différents types $allowed_types = array("image/bmp", "image/gif", "image/pjpeg", "image/jpeg", "image/jpg"); // Variables récupérée par methode POST du formulaires $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_".$file)){$error = 3;} // Si tout va bien, c'est bien déroulé if(copy($ftmp,''.$folder.''.$file.'')) {$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; } ?> </body> </html>
L'upload se fait parfaitement mais le fichier est renomé pour prendre le numéro de l'ID, jusque ici tout va bien.
Mais il n'y a pas l'extension. Je voudrais que le fichier se nomme :
$id.$extenssion
Mais je ne sais pas comment faire.
Merci
A voir également:
- Upload fichier vers serveur : Probléme php
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
4 réponses
déjà je te conseil d'utiliser des elseif au lieu des if parce que là si la variable $error prend une valeur ca ne top pas le script et ca n'empeche pas la copie du fichier.
ensuite je te conseil move_uploaded_file() au lieu de copy() qui et plus approprié à cette action.
pour ce qui est de l'extension:
move_uploaded_file($ftmp,$folder.'/'.$id.'.'.$extenssion);
ensuite je te conseil move_uploaded_file() au lieu de copy() qui et plus approprié à cette action.
pour ce qui est de l'extension:
move_uploaded_file($ftmp,$folder.'/'.$id.'.'.$extenssion);
j'oublier pense à proteger tes variables super global
tu peux par exemple mettre en tete de chaque page :
qui te les protègeras automatiquement
tu peux par exemple mettre en tete de chaque page :
<?php function ProtectArray($item) { $item = array_map('htmlentities',$item); if (@mysql_real_escape_string('blabla')) return array_map('mysql_real_escape_string',$item); else return $item; } if (isset($_GET)) { $GET = ProtectArray($_GET); } if (isset($_POST)) { $POST = ProtectArray($_POST); } if (isset($_COOKIE)) { $COOKIE = $Sql->ProtectArray($_COOKIE); } ?>
qui te les protègeras automatiquement