
Upload multiple ou simple des fichiers
Information sur le code source PHP
Codes en PHP de l'auteur :
[2] sources
Voir
Enregistrement le 05 Juil 2008 - Vu 28212 fois
Information sur le code source
il n'a jamais été aussi facile de transferer des fichiers sur votre serveur.
/*
EXPLICATION ET REGLES D'UTILISATION DE CETTE FONCTION
**************
$num_uploads = Nombre de champs d'upload à afficher et à gerer simultanément.
**************
$file_types_array = Un tableau regroupant toutes les extentions autorisées. par defaut, seuls les fichiers ('jpg','gif','png','mp3','bmp','swf','flv','mpeg','jpeg') sont autorisés.
*************
$max_file_size = poids maximun de chaque fichier à uploader. pour toute valeur autre que numerique aura comme consequense de fixer cette variable à sa valeur par defaut de 1Mo .
*************
$upload_dir = Chemin menant au repertoire de destination du fichier à uploader, Rassurez vous qu'il se termine par un slash (/)
*************
Cette fonction affiche le formulaire et gere les données soumises par elle-même, pour uploader un ou plusieurs fichiers vous n'avez qu'à modifier les parametres d'entrée selon vos convenances, elle se charge du reste.
CAS PARTICULIER:
pour le transfert d'un seul fichier avec les parametres par defaut vous avez juste a appeler la fonction comme ceci:
*//*EXEMPLE D'UTILISATION
FILE_UPLOADER($num_of_uploads=5, $file_types_array=array('fla','swf','flv','mpeg','avi'), $max_file_size=1048576, $upload_dir="media/");
dans ce cas precis, penser à créer le repertoire "media", qui doit etre un sous-dossier du dossier contenant le fichier upload.php
/// dans le cas contraire, indiquer le chemin exacte à suivre jusqu'au dossier "media"
*/
Code Source
.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
.25
.26
.27
.28
.29
.30
.31
.32
.33
.34
.35
.36
.37
.38
.39
.40
.41
.42
.43
.44
.45
.46
.47
.48
.49
.50
.51
.52
.53
.54
.55
.56
.57
.58
.59
.60
.61
.62
.63
.64
.65
.66
.67
.68
.69
.70
.71
.72
.73
.74
.75
.76
.77
.78
.79
.80
.81
.82
.83
.84
.85
.86
.87
.88
.89
.90
.91
.92
.93
.94
.95
.96
.97
.98
.99
.100
.101
.102
.103
.104
.105
.106
.107
.108
.109
.110
|
|
<?php
/******************************************************************************/
/* */
/* __ ____ */
/* ___ / / ___ / __/__ __ _____________ ___ */
/* / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-< */
/* / .__/_//_/ .__/___/\___/\_,_/_/ \__/\__/___/ */
/* /_/ /_/ */
/* */
/* */
/******************************************************************************/
/* */
/* Titre : Upload multiple ou simple des fichiers */
/* */
/* URL : http://www.phpsources.org/scripts425-PHP.htm */
/* Auteur : tex73 */
/* Date édition : 05 Juil 2008 */
/* Website auteur : http://www.bbsecurit.com */
/* */
/******************************************************************************/
function FILE_UPLOADER($num_of_uploads=1, $file_types_array=array('jpg',
'gif',
'png',
'mp3',
'bmp',
'swf',
'flv',
'mpeg',
'jpeg'),
$max_file_size=1048576, $upload_dir=""){
if(!is_numeric($max_file_size)){
$max_file_size = 1048576;
}
$max_file_size_Mo = $max_file_size/1048576;
if(!isset($_POST['submitted'])){
$form = '<form action="'.$PHP_SELF.
'" method="post" enctype="multipart/form-data">
Telechargement de fichier:<input type="hidden" name="submitted"' .
' value="TRUE" id="'.time().'">
<input type="hidden" name="MAX_FILE_SIZE" value="'
.$max_file_size.'">';
for($x=0;$x<$num_of_uploads;$x++){
$form .=
'<input type="file" name="file[]"><font color="red">*</font><br /><br />';
}
$form .=
'<input type="submit" value="Telecharger"><br /><font color="red">*</font>
Type(s) de fichiers autorisés: ';
$y=count($file_types_array);
for($x=0;$x<$y;$x++){
if($x<$y-1){
$form .= $file_types_array[$x].', ';
}else{
$form .= $file_types_array[$x].'.';
}
}
$form .= '</form>';
echo($form);
}else{
foreach($_FILES['file']['error'] as $key => $value){
if($_FILES['file']['name'][$key]!=""){
if($value==UPLOAD_ERR_OK){
$origfilename = $_FILES['file']['name'][$key];
$filename = explode('.', $_FILES['file']['name'][$key]);
$filenameext = $filename[count($filename)-1];
unset($filename[count($filename)-1]);
$filename = implode('.', $filename);
$filename = substr($filename, 0, 15).'.'.$filenameext;
$file_ext_allow = FALSE;
//par mesure de securité on suppose l'extenion du fichier fausse
//verifions si notre fichier fait partie des types autorisés
if(false !== ($iClef = array_search($filenameext, $file_types_array))) {
$file_ext_allow = TRUE;
}
if($file_ext_allow){
if($_FILES['file']['size'][$key]<$max_file_size){
if(move_uploaded_file($_FILES['file']['tmp_name'][$key],
$upload_dir.$filename)){
echo('Transfert de fichier effectué avec succès. -
<a href="'.$upload_dir.$filename.'" target="_blank">'.
$filename.'</a><br />');
/*evidemment plutot que d'afficher ici le lien vers le fichier uploader
sur le serveur vous pouvez proceder à une redirection vers
une autre page*/
}else{
echo('Une erreur est survenue lors du transfert de '.'<strong>'.$origfilename.
'</strong><br />');
}
}else{
echo('La taille du fichier '.''.$origfilename.''.' excède les '.
$max_file_size_Mo.' Mo autorisé(s)');
}
}else{
echo('Le fichier '.''.$origfilename.''.
' a une extension invalide, ERREUR DE TRANSFERT !<br />');
}
}else{
echo('Une erreur est survenue lors du transfert de '.'<strong>'.
$origfilename.'</strong>');
}
}
}
}
}
?>
|
Fonctions du code source
Fonctions php / mysql PHP
- array : Crée un tableau - (PHP 4, PHP 5)
- is_numeric : - (PHP 4, PHP 5)
- isset : Détermine si une variable est affectée - (PHP 4, PHP 5)
- time : Retourne le timestamp UNIX actuel - (PHP 4, PHP 5)
- count : Compte le nombre d'éléments d'un tableau ou le nombre de propriétés d'un objet - (PHP 4, PHP 5)
- echo : Affiche une chaîne de caractères - (PHP 4, PHP 5)
- explode : Coupe une chaîne en segments - (PHP 4, PHP 5)
- unset : Détruit une variable - (PHP 4, PHP 5)
- implode : Rassemble les éléments d'un tableau en une chaîne - (PHP 4, PHP 5)
- substr : Retourne un segment de chaîne - (PHP 4, PHP 5)
- array_search : Recherche dans un tableau la clé associée à une valeur - (PHP 4 >= 4.0.5, PHP 5)
- move_uploaded_file : Déplace un fichier téléchargé - (PHP 4 >= 4.0.3, PHP 5)
|
|
le 05 Juil 2008 à 14:25:00
|
je testé le script en localhost il ne fonctionne pas
|
|
le 08 Juil 2008 à 18:05:00
|
je confirme qu'il nyà pas de bug connus à ce jours. Cette source fonctionne a merveil chez moi, et je l'ai poster egalement sur d'autres sites de partages de sources, les membres l'ont testé et à ce jour personne ne c'est plaint de quelque disfonctionnement que ce soit.
je te donne rais un piste à ton pb en te demandant de virifier que le chemin de ton repertoire de destination est exacte, que tu possede les droits d'ecriture sur ce repertoire(chmod) et enfin si la fonction a étésujette à des modifications rassures toi de n'avoir pas commis d'erreur de frappes. merci
|
|
le 09 Juil 2008 à 15:27:00
|
merci pour votre explication
le script fonctionne correctement
|
|
le 15 Aout 2008 à 11:56:00
|
j'ai essayé cette fonction mais malheuresement ca pas marché, jl'ai utilisé telle qu'elle est sur le site , et j'ai eu cette erreur
| Code: |
Warning: Invalid argument supplied for foreach() in c:\program files\easyphp\www\test\upload.php on line 24
|
|
|
le 15 Aout 2008 à 12:08:00
|
j'ai essayé cette fonction mais malheuresement ca pas marché, jl'ai utilisé telle qu'elle est sur le site , et j'ai eu cette erreur
| Code: |
Warning: Invalid argument supplied for foreach() in c:\program files\easyphp\www\test\upload.php on line 24
|
|
|
le 27 Nov 2008 à 15:51:00
|
Bonjour,
Joli travail, chez moi cela fonctionne du premier coup.
Une petite question, avez vous déjà ajouté une petite fonction qui vérifie la taille d'une image (par exemple ne pas dépasser 400*400)
Patrick
|
|
le 27 Nov 2008 à 21:43:00
|
|
|
le 20 Déc 2008 à 21:07:00
|
Salut.
je vous conseille aussi de tester une solution d'upload multiple en flash et ajax. ça s'appelle NAS Uploader et ça se trouve ici -http://www.nasuploader.com et ça marche bien aussi!
@+
|
|
le 04 Avril 2009 à 10:17:00
|
C'est pas possible, il a pas été testé avant d'être posté, ce bout de code ?
|
|
le 08 Avril 2009 à 10:06:00
|
CHIHAOUI :
le code source dans le zip ne correspond pas a celle dans cette page, donc testé plutot celle de fichier zip ( le télécharger en haut de la page ) :D
|
|
le 22 Mai 2009 à 08:06:00
|
Je viens de tester le script et ce script fonctionne très bien.
Pour le faire fonctionner, suffit simplement d'appeler la fonction
FILE_UPLOADER();
Offres d'emploi
Librairie
Langages de programmation
La librairie est ouverte à tous et elle est accès principalement sur les langages PHP et MySQL.
Vous trouverez aussi d'autres langages de programmation tel que le CSS, HTML, AJAX, ASP..
Plus de 300 références facilement accessibles. Visiter