Fonction PHP : upload_fichier()
Ici, vous pouvez voir (et copier/coller) le code complet de la fonction PHP upload_fichier(). N'hésitez pas voter pour cette fonction si elle vous plaît ou si vous vouv en servez !
upload_fichier() ajouté le 2009-05-16 09:14:48 par arnaud-k
<?php
/**
* Une fonction pour uploader des fichiers. La fonction genere un nouveau nom au fichier
* parametres : $file_id- Le nom du champ input contenant le fichier
* $folder - Le dossier dans lequel doit etre uploade le fichier, il doit etre ecrivable. OPTIONAL
* $types - Une liste d'extensions autorisees separé par des virgules OPTIONAL
* Returns : La fonction retourne un tableau contenant deux éléments !
* Le premier est le nom du fichier générée aléatoirement.
* Le second est le statut de l'upload, en cas d'error ça peut être : 'Error : Cannot upload the file 'name.txt'.'
*/
function upload_fichier($file_id, $folder="", $types="") {
if(!$_FILES[$file_id]['name']) return array('','No file specified');
$file_title = $_FILES[$file_id]['name'];
//Get file extension
$ext_arr = split("\.",basename($file_title));
$ext = strtolower($ext_arr[count($ext_arr)-1]); //Get the last extension
//Not really uniqe - but for all practical reasons, it is
$uniqer = substr(md5(uniqid(rand(),1)),0,5);
$file_name = $uniqer . '_' . $file_title;//Get Unique Name
$all_types = explode(",",strtolower($types));
if($types) {
if(in_array($ext,$all_types));
else {
$result = "'".$_FILES[$file_id]['name']."' is not a valid file."; //Show error if any.
return array('',$result);
}
}
//Where the file must be uploaded to
if($folder) $folder .= '/';//Add a '/' at the end of the folder
$uploadfile = $folder . $file_name;
$result = '';
//Move the file from the stored location to the new location
if (!move_uploaded_file($_FILES[$file_id]['tmp_name'], $uploadfile)) {
$result = "Cannot upload the file '".$_FILES[$file_id]['name']."'"; //Show error if any.
if(!file_exists($folder)) {
$result .= " : Folder don't exist.";
} elseif(!is_writable($folder)) {
$result .= " : Folder not writable.";
} elseif(!is_writable($uploadfile)) {
$result .= " : File not writable.";
}
$file_name = '';
} else {
if(!$_FILES[$file_id]['size']) { //Check if the file is made
@unlink($uploadfile);//Delete the Empty file
$file_name = '';
$result = "Empty file found - please use a valid file."; //Show the error message
} else {
chmod($uploadfile,0777);//Make it universally writable.
}
}
return array($file_name,$result);
}
La fonction php upload_fichier permet d'uploader un fichier. Pour plus d'infos sur les paramètres à donner à la fonction est ce qu'elle retourne, voir les commentaires dans le code.
J'ajoute également un exemple dans les commentaires de la fonction.
Commentaires sur la fonctions php
arnaud-k 16/05/2009 à 09:17
Voici un exemple, pour la partie PHP (image correspond au nom du champ de type file du formulaire).
if($_FILES['image']['name']) { list($file,$error) = upload('image','uploads/','jpeg,gif,png'); if($error) echo $error; // on affiche l'erreur, s'il y en a une }