diff --git a/action/ajouter_documents.php b/action/ajouter_documents.php index 7e4162b21537c87b739689fdb1d3a7a7afc43206..09d788bc3e0ba3209eeef547f3052331071a45c8 100644 --- a/action/ajouter_documents.php +++ b/action/ajouter_documents.php @@ -316,17 +316,19 @@ function fixer_fichier_upload($file, $mode=''){ /** * On vérifie que le fichier existe et qu'il contient quelque chose */ - if ( - !$file['tmp_name'] - OR !@file_exists($file['tmp_name']) - OR !$infos['taille'] = @intval(filesize($file['tmp_name']))) { - spip_log ("Echec copie du fichier ".$file['tmp_name']); - return _T('medias:erreur_copie_fichier',array('nom'=> $file['tmp_name'])); - } if (is_array($row=verifier_upload_autorise($file['name'], $mode))) { if (!isset($row['autozip'])){ $row['fichier'] = copier_document($row['extension'], $file['name'], $file['tmp_name']); - return $row; + /** + * On vérifie que le fichier a une taille + * si non, on le supprime et on affiche une erreur + */ + if($row['fichier'] && (!$taille = @intval(filesize(get_spip_doc($row['fichier']))))) { + spip_log ("Echec copie du fichier ".$file['tmp_name']." (taille de fichier indéfinie)"); + spip_unlink(get_spip_doc($row['fichier'])); + return _T('medias:erreur_copie_fichier',array('nom'=> $file['tmp_name'])); + }else + return $row; } // creer un zip comme demande // pour encapsuler un fichier dont l'extension n'est pas supportee @@ -365,7 +367,16 @@ function fixer_fichier_upload($file, $mode=''){ $row['fichier'] = copier_document($row['extension'], $file['name'], $source); spip_unlink($source); - return $row; + /** + * On vérifie que le fichier a une taille + * si non, on le supprime et on affiche une erreur + */ + if($row['fichier'] && (!$taille = @intval(filesize(get_spip_doc($row['fichier']))))) { + spip_log ("Echec copie du fichier ".$file['tmp_name']." (taille de fichier indéfinie)"); + spip_unlink(get_spip_doc($row['fichier'])); + return _T('medias:erreur_copie_fichier',array('nom'=> $file['tmp_name'])); + }else + return $row; } } else