Test sur fichier upload

Résolu
clemant Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
 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

$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

  1. Azraka Messages postés 265 Statut Membre 13
     
    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
  2. clemant
     
    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