Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MULTI-UPLOAD FACILE AVEC JQUERY ET UN PEU DE PHP


Information sur la source

Catégorie :Fichier / Disque Classé sous : multiupload, multi-upload, multi upload, jquery Niveau : Débutant Date de création : 07/11/2007 Date de mise à jour : 08/11/2007 10:44:50 Vu / téléchargé: 11 630 / 1 134

Note :
Aucune note

Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
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

  • 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,
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
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

07 novembre 2007 16:05:06 :
Si vous souhaitez personnaliser le lien/bouton de suppression de fichiers placés dans la file d'attente/queue, il vous faut éditer 2 fichiers - ligne 128 de jquery.MultiFile.js : remplacer "X" par ce que vous voulez - ligne 726 de jquery-lastest.js : remplacer "X" par ce que vous voulez (même chaîne de caractère)
08 novembre 2007 10:44:51 :
Après avoir lu les commentaires, je préfères avertir ...

Commentaires et avis

signaler à un administrateur
Commentaire de malalam le 07/11/2007 19:59:26 administrateur CS

Hello,

ouais, y a surtout bcp de js!
Au passage, jquery n'est pas un framework ajax. C'est une librairie javascript. Ca ne permet pas QUE de faire de l'ajax. D'ailleurs, ton code en est la preuve : il n'y a pas d'ajax.

Sinon, ben je ne connaissais pas cette extension de jquery : Multifile. C'est intéressant. Je testerai tout ça. N'ayant pas du tout testé ton code, je réserve mon commentaire dessus (la partie php donc) pour plus tard. Le js, vu qu'il n'est pas de toi, je ne le commenterai pas :-) Mais bon juste : là, t'avais pas franchement besoin d'une classe...

signaler à un administrateur
Commentaire de neigedhiver le 08/11/2007 01:25:36

Salut,

La méthode testerExtension est inutile. Elle fait totalement doublon avec la méthode recupererExtension.
if ($fichier -> recupererExtension())
sera vrai si une extension est retournée, faux sinon.

Cette méthode recupererExtension, justement, comporte une erreur :
$extensions = array('.jpg', '.JPG' , '.jpeg', '.JPEG','.png','.PNG','.gif','.GIF','.bmp','.BMP');
$ext = strtolower(substr($fichier,'-4'));

Pour le cas d'extensions qui font 4 caractères, l'extension ne sera pas trouvée.
Je préfère, et de loin, utiliser une PCRE pour récupérer l'extension sans le point

$ext = preg_replace('/.*\.([^\.]*)/', '$1', $fichier);
return in_array($ext, $extensions) ? $ext : false;

Par ailleurs, je verrais bien les extensions autorisées définies en dehors de la méthode : définir à chaque fois une variable de la même manière, c'est un peu lourd.

if (copy($fichier,$destination) == TRUE)
{
  return TRUE;
}
else
{
  return FALSE;
}

=>
return (copy($fichier,$destination));
Du coup, cette methode ne sert à rien : elle ne fait que renommer une fonction php.
Du coup, pour tester l'extension, comme le disait Malalam, ça ne mérite pas une classe.

public function __construct()
{
  $this->fichier;
}

Je ne comprends pas l'intérêt du constructeur...
la propriété Fichier::fichier n'est même pas définie... Cette ligne ne fait, en fait, rien...

Donc inutile de mettre un constructeur dans ce cas là, l'objet sera construit malgré tout.
De même que le destructeur : S'il n'est pas spécifié, cela n'empêche pas l'objet d'être détruit.

Encore un détail :
if (is_dir("uploads") == FALSE)

>>>

if (!is_dir('uploads'))

Bref... Ca mériterait d'être sérieusement raccourci...

signaler à un administrateur
Commentaire de Zeo34 le 08/11/2007 10:41:32

Salut,
Le script PHP est une portion du code d'un des projets que je gère au niveau de mon travail dans une société privée. Comme j'étais assez pressé de rajouter ces scripts sur PHPCS, je n'ai pas relu. Deplus, il n'est qu'une portion d'un ensemble ... Comme je ne travaille pas seul sur les projets Web, nous (les webmasters) avont mis en place des méthodes de scripts ... Pour prendre en compte les niveaux de programmation de chacun.
Cordialement,
Damien

signaler à un administrateur
Commentaire de webdeb le 08/11/2007 21:37:47

Une autre appli sympa et opensource qui fait pareil que la tienne :

http://digitarald.de/project/fancyupload/

signaler à un administrateur
Commentaire de alover971 le 12/11/2007 07:54:25

peut etre un manque d'optimisation et de fonctionnalité mais .. je vais aller tester..
puisque j'ai justement besoin d'un uploadm ultiple qui marche à 100%.. comparer à beaucoup qui buggué une fois sur 10..
par contre, je crois que ton upload multiple, on doit selectionner un par un, car je ne vois pas de fichier flash.. seul lui gère la selection multiple :)
Donc je pense que je vais garder fancyupload qui est effectivement le meilleur que j'ai pu voir..
petit problème est qu'il utilise mootools, et non pas jquery.. et que cela m'embeter legerement :D

signaler à un administrateur
Commentaire de jacknikolson le 12/11/2007 10:02:15

Je viens de tester:

Chez moi sous FF voici la réponse quand je clique sur "Uploader les fichiers"

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in d:\mes documents\02multimédia\php\www\multiupload\traitement.php on line 10

signaler à un administrateur
Commentaire de malalam le 12/11/2007 11:00:18 administrateur CS

Hello,

c'est du PHP5 et tu es en PHP4. Firefox ou IE ça ne changera rien.

signaler à un administrateur
Commentaire de alover971 le 12/11/2007 12:21:02

bon j'ai tester donc..
Malheureusement ca ne me convient pas du tout hein :))) lol
j'ai besoin d'un upload ou on selectionne plusieurs fichier d'un coup...
malheureusement faut swf upload, ou fancy upload (basé dessus) et ca pause pb car y'a des bugs encore :( snif !

signaler à un administrateur
Commentaire de jacknikolson le 12/11/2007 14:04:26

Rien à faire, je suis passé sous easyphp 2.0 mais maintenant je me retrouve avec les erreurs suivantes:

Notice: Undefined variable: monFichier in C:\Program Files\EasyPHP 2.0b1\www\Multiupload\traitement.php on line 68

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

signaler à un administrateur
Commentaire de plaroche le 14/11/2007 11:42:54

Pour ma part, j'utile les scripts de SWFUpload.

http://swfupload.mammon.se/download.php, il ya des exemples, c'est tres simple et ca

combine du flash + AJAX.

signaler à un administrateur
Commentaire de lau10 le 06/05/2008 12:58:07

bonjour

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é.

signaler à un administrateur
Commentaire de touhami_com1 le 12/11/2008 22:49:34

un autre script qui fonctionne pas merde alors ca sert a quoi de poster des tas de merde qui fonctionne pas ?

signaler à un administrateur
Commentaire de caviar le 18/11/2008 12:43:53

salut, pas mal ton petit script. Pour ceux qui sont intéresses par un système en flash il y a aussi NAS Uploader que vous trouvez ici
http://www.nasuploader.com
@++

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

JQuery + PHP + enregistrer l'état [ par geek1983 ] Bonjour, j'utilise PHP et JQuery. J'aimerais enregistrer l'état d'une fonction jquery dans un cookie ou une session.Je m'explique. Voici une fonction


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.