Test sur fichier upload
Résolu
clemant
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
clemant -
clemant -
Bonjour
Voici mon pb , J ai créé un formulaire avec pièce jointe mais mes tests ne marchent pas l'envoi de fichier vide se fait quand meme malgré exit ("Le fichier est introuvable") idem pour size par contre OK pour l'extension
Voici mon pb , J ai créé un formulaire avec pièce jointe mais mes tests ne marchent pas l'envoi de fichier vide se fait quand meme malgré exit ("Le fichier est introuvable") idem pour size par contre OK pour l'extension
$page_web="[page_prec]";
$page_web=str_replace("[SESSION_ID]","?".session_name()."=".session_id(),$page_web);
$chiffre=rand(100,999).rand(100,999).rand(100,999);
$content_dir = 'upload/';
$content_dir.=$chiffre."/";
$envoi_mail_pj=1;
IF (!file_exists("./upload")){
umask(0);
@mkdir("./upload",0777);
}
IF (!file_exists("./upload/$chiffre")){
umask(0);
@mkdir("./upload/$chiffre",0777);
}$nb_fic=0;
$url_chemin=str_replace("formulaire.php","","[http://]".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'] );
$tmp_file = $_FILES['id_14']['tmp_name'];
if ($tmp_file<>""){
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
if ( $_FILES['id_14']['size']>750000){
exit("Le poids de votre fichier est trop important.");
}
// on vérifie maintenant l'extension
$type_file1 = explode(".",$_FILES['id_14']['name']);
$type_file=strtolower($type_file1[count($type_file1)-1]);
IF (!strstr($type_file, 'doc')&& !strstr($type_file, 'jpg') ){
exit("Ce type de fichier n'est pas autorisé.");
}
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['id_14']['name'];
if( @preg_match('#[\x00-\x1F\x7F-\x9F/\\]#', $name_file))
{
exit("Nom de fichier non valide");
}
else {
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
else {
$url_upload.='fichier à télécharger sur le serveur : '.$url_chemin.$content_dir . $name_file.'<br>';
$nb_fic++;
$tab_fic[$nb_fic][0]=$content_dir . $name_file;
$tab_fic[$nb_fic][1]=$_FILES['id_14']['type'];
}
}
}
3 réponses
-
salut moi j'utiliserai la classe SplFileInfo pour obtenir des infos sur les fichiers uploadés en php
https://www.php.net/manual/fr/class.splfileinfo.php
-
Tu peux tester la taille du fichier envoyé, comme tu le fais pour voir si le poids n'est pas trop important :
if ( $_FILES['id_14']['size'] > 0){
exit("Le fichier est introuvable");
}
-
En changeant ceci à la ligne 19 et 2O c'est ok
if (is_uploaded_file($tmp_file['tmp_name'])) {
exit("Le fichier est introuvable");
}
Merci pour vos reponses