MULTI-UPLOAD FACILE AVEC JQUERY ET UN PEU DE PHP

Messages postés
10918
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
- - Dernière réponse : salenson
Messages postés
1
Date d'inscription
mardi 22 août 2006
Statut
Membre
Dernière intervention
11 juin 2010
- 11 juin 2010 à 12:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44633-multi-upload-facile-avec-jquery-et-un-peu-de-php

Afficher la suite 
malalam
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17 -
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...
neigedhiver
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
11 -
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...
Zeo34
Messages postés
7
Date d'inscription
jeudi 29 mai 2003
Statut
Membre
Dernière intervention
10 janvier 2009
-
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
webdeb
Messages postés
509
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
1 -
Une autre appli sympa et opensource qui fait pareil que la tienne :

http://digitarald.de/project/fancyupload/
alover971
Messages postés
8
Date d'inscription
samedi 25 février 2006
Statut
Membre
Dernière intervention
30 novembre 2007
-
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