Test sur fichier upload

Résolu/Fermé
clemant Messages postés 6 Date d'inscription mercredi 17 juillet 2013 Statut Membre Dernière intervention 24 février 2014 - Modifié par pijaku le 24/02/2014 à 09:47
 clemant - 26 févr. 2014 à 19:36
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

$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'];
} 
}
}
A voir également:

3 réponses

totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
25 févr. 2014 à 18:14
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
0
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014 13
26 févr. 2014 à 09:25
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");
}

0
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
0