Le multi-upload, j'avais tendance à penser que c'était une légende de développeurs ! Après avoir fait quelques recherches sur Internet (communautés de développeurs, sites spécialisés, ...), je n'ai trouvé que des projets en cours de développement ou des scripts difficiles à mettre en oeuvre ...
Vous trouverez également un fichier CSS à adapter (je propose une CSS très basique).
J'ai découvert un framework Ajax : JQUERY !
JQUERY permet de faire du multi-upload mais il manquait un fichier pour pouvoir enregistrer les fichiers ...
Je vous propose donc JQUERY et la gestion du multi-upload par du PHP ...
Cet ensemble de scripts n'est certainement pas parfait mais il conviendra aux personnes voulant mettre rapidement un multi-upload en oeuvre.
J'ai écrit une classe PHP dans laquelle j'ai prévu des méthodes, j'ai énormément commenté mon script dans le cas où vous auriez besoin de le modifier ...
Bonne mise en oeuvre,
Cordialement,
Zeo34/Damien
Source / Exemple :
Source PHP présente dans la pièce jointe ... Certaines méthodes de la classe sont à revoir car elles peuvent être inutiles ...
A vous de modifier en conséquence de votre projet Web.
Merci,
Conclusion :
Quelques incohérences au niveau du script PHP, car il n'est qu'une portion de code d'un projet pour une société privée, mais il est suffisant pour être mis en oeuvre
Le formulaire :
<form action="traitement.php" method="post" enctype="multipart/form-data" >
</form>
Le traitement :
<?php
# ################################## #
# Traitement des fichiers à uploader #
# ################################## #
// Définition de la classe PHP5
class Fichier
{
// Détecter l'extension et afficher cette extension
public function recupererExtension($fichier)
{
$extensions = array('jpg', 'JPG' , 'jpeg', 'JPEG','png','PNG','gif','GIF','bmp','BMP');
$ext = preg_replace('/.*\.([^\.]*)/', '$1', $fichier);
return in_array($ext, $extensions) ? $ext : false;
}
// Copier le fichier dans le dossier cible
public function copierFichier($fichier,$destination)
{
return (copy($fichier,$destination));
}
}
# Créer le dossier où seront uploadés les fichiers
if (is_dir("uploads") == FALSE) mkdir("uploads");
// Le premier fichier
$monFichier = new Fichier;
for ($i=0;$i<=9;$i++)
{
$finFile = $i?$i:"";
// Tester l'extension pour continuer
$monExtension = $monFichier->recupererExtension($_FILES['uploadedfile'.$finFile]['name']);
//echo "
Ext($finFile) = $monExtension \n";
if ($monExtension)
{
// -> Définir le chemin/destination du fichier uploadé
$target_path = "uploads/".basename($_FILES['uploadedfile'.$finFile]['name']);
// -> Uploader et enregistrer le fichier
if ($monFichier->copierFichier($_FILES['uploadedfile'.$finFile]['tmp_name'],$target_path) == 1)
{
# -> Upload réussi
echo "Upload OK";
}
}
}
?>
http://www.nasuploader.com
@++
problème : Fatal error: Call to a member function testerExtension() on a non-object in C:\Program Files\EasyPHP 2.0b1\www\Multiupload\traitement.php on line 68
résolu en rajoutant l'initialisation de la class Fichier avant de tester l'extension:
$monFichier = new Fichier;
if ($monFichier->testerExtension($_FILES['fichier1']['name']) == 1)
pour les 4 caractères de l'extension : le format JPEG est-il indispensable ? pas très courant me semble t-il et renommable en JPG
ce script fonctionne, il est simple et je le trouve utile, même si d'après les experts il n'est pas très optimisé.
http://swfupload.mammon.se/download.php, il ya des exemples, c'est tres simple et ca
combine du flash + AJAX.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.