SYSTÈME D'UPLOAD DE FICHIER SANS RECHARGEMENT DE LA PAGE.

007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 - 6 mars 2011 à 10:54
cs_theptitprince Messages postés 14 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 5 janvier 2012 - 14 avril 2012 à 00:08
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/52892-systeme-d-upload-de-fichier-sans-rechargement-de-la-page

cs_theptitprince Messages postés 14 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 5 janvier 2012
14 avril 2012 à 00:08
Faire un système de preview avant chargement me semble difficile... Par contre, après chargement, cela reste facil. Dans le fichier listing, remplacez tout simplement le echo par echo ""; et cela devrait marcher!
Cependant, après avoir regardé rapidement votre site, je vous conseil vivement de passer au système drag'n drop pour l'upload des fichiers. Vous trouverez un excellent tuto bien expliqué en vidéo sur le site de graphikart...
ctzenfr Messages postés 10 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 7 août 2010
13 avril 2012 à 14:13
Super!
Merci pour le code et à Marie qui a bien voulu laisser l'adresse de sa page pour le preview ;-)
mariegendron Messages postés 2 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 25 novembre 2003
30 mars 2012 à 11:32
Excellent code - Merci !
J'ai juste une question pour mon script php.
Comment ajouter un ( preview ) d'un fichier image
avant et/ou après le téléchargement ?
(car bien sûr je n'y arrive pas toute seule !)
( voir sur ma page = http://www.mariepanic.com/gallery/mpcalendar.php )
J'ai aussi ajouté un lien vers la présente page pour vous remercier !
SimSimon Messages postés 9 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 30 avril 2007
2 juil. 2011 à 15:38
Bonjour,

ça ne fonctionne pas !

il me met tout le temps l'erreur: "Echec de l'upload ! " que ça soit du jpg,gif etc...
cs_theptitprince Messages postés 14 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 5 janvier 2012
7 mars 2011 à 13:24
Merci pour toutes ces information 007Julien, je vais aller visiter les pages que tu m'as donné de ce pas afin de pouvoir intégrer les bons header sur chaque page.
Ne t'excuse pas pour ta longue digression, j'ai dit que j'étais ouvert à toutes remarques!
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
7 mars 2011 à 13:01
Voici, à toutes fin utiles, un script à insérer dans une page pour consulter son entête ou header:

var xmlFct=[function(){return new XMLHttpRequest()},
function(){return new ActiveXObject("Msxml2.XMLHTTP")},
function(){return new ActiveXObject("Msxml3.XMLHTTP")}]
,xmlhttp=false;
for (var i=0;i<xmlFct.length;i++) {try{xmlhttp = xmlFct[i]();} catch(e){continue;} break;}
if (xmlhttp) {xmlhttp.open("HEAD",document.location.href,true);
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && 200<=xmlhttp.status && xmlhttp.status<300) alert(xmlhttp.getAllResponseHeaders())}
xmlhttp.send(null)
}
Ce script utilise ajax avec une requête de type HEAD qui permet de renseigner notamment la date de la dernière mise à jour d'une page à partir d'un xmlhttp.getResponseHeader("Last-Modified")
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
7 mars 2011 à 10:30
Oui, (conformément aux indications de la page http://www.alsacreations.com/astuce/lire/69-declarer-encodage-des-caracteres.html), il convient de prévoir sur les pages php un header correspondant au code caractère choisi (ma parenthèse n'avait pour objet que de présenter quelques alternatives).

Pour l'iso-8859-1
header("Content-Type: text/html; charset=iso-8859-1");

Pour l'iso-8859-15
header("Content-Type: text/html; charset=iso-8859-15");

Pour l'utf-8
header("Content-Type: text/html; charset=utf-8");

De plus, il est bon dans les pages (X)HTML de disposer une balise Meta adaptée au jeu de caractère telle que par exemple pour l'utf-8 :

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Maintenant pour le choix du jeu de caractère voir aussi cette page http://www.alsacreations.com/astuce/lire/34-charset-iso-8859-1-iso-8859-15-utf-8-lequel-choisir.html

Avec mes excuses pour cette longue digression. Cordialement.
cs_theptitprince Messages postés 14 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 5 janvier 2012
7 mars 2011 à 08:14
Donc il suffirait que je rajoute un header("Content-Type: text/html; charset=utf-8 (iso-8859-1"); au début de chacun des fichiers php? (parce que je ne suis plus sur de tout comprendre la...)
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
7 mars 2011 à 00:55
La question des accents n'est pas seulement une question d'esthétique. Je ne suis pas certain que la fonction strtr fonctionne toujours très bien sur une page enregistrée avec le jeu de caractère utf-8. Il est souvent recommandé de l'utiliser avec un tableau associatif array("À"=>"A",...), d'autres vont jusqu'à préconiser le passage par des entités HTML (voir par exemple http://www.weirdog.com/blog/php/supprimer-les-accents-des-caracteres-accentues.html).

En toutes hypothèses, cette question semble dépendre non seulement du codage de la page (l'encodage serait un anglicisme inutile), mais encore de la configuration du serveur (que l'on peut obtenir et essayer de modifier avec setlocale) ainsi que du codage interne (mb_internal_encoding). Sur tous ces points (et bien d'autres tels que par exemple que l'inclusion de fichiers PHP de codage différents), il est malheureusement difficile de trouver des éléments de réponses éclairant un peu l'ensemble de la question...

Faudrait-il attendre, que des constructeurs anglophones, faisant fi de normes internationales dépassées - voir http://coin.des.experts.pagesperso-orange.fr/reponses/faq9_65.html) nous apportent le windows-1252 pour pouvoir écrire correctement nos 112 noms de communes comportant un œ dont Œuf-en-Ternois, Crèvecœur-en-Auge ou Dœuil-sur-le-Mignon ?

Ceci dit, l'expérience montre qu'il est utile de donner quelques indications aux navigateurs pour le choix du jeu de caractères (ou charset en vo). Avec des fichiers PHP, il est facile de prévoir par exemple un header("Content-Type: text/html; charset=utf-8 (iso-8859-1, iso-8859-15 ou windows-1252"); en tête de chaque fichie. Il est, en outre, recommandé de déclarer ce charset devant ou dans le fichier (X)HTML.
cs_theptitprince Messages postés 14 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 5 janvier 2012
6 mars 2011 à 11:24
Pour les accents, c'est normal, j'ai écris tous les textes sans accents, mais j'aurais pu les mettre en html (mais bon, a la base, ce code était un essai, donc je codais assez rapidement, et mon but n'étais pas de faire une jolie présentation, juste un code fonctionnel).
Après, mon code est passé sur différents éditeurs de code, et sur différents système d'exploitation, d'ou le problème d'accent dans le fichier upload.php
Seul la technique m'intéressait ici
Je me suis rendu compte qu'une source un peu similaire se trouvait ici d'ailleurs:
http://www.javascriptfr.com/codes/TELECHARGEMENT-SANS-RECHARGER-PAGE_52042.aspx
Ma mienne ayant pour seul avantage le listing des fichiers une fois l'upload terminé, un message pendant et a la fin du téléchargement, ainsi que la désactivation du bouton "envoyer" pendant l'upload.
Je remettrai le code ici présent à jour une fois que j'aurais fini de l'intégrer a mon site (afin de régler les problèmes de charset et header).
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
6 mars 2011 à 10:54
Y-aurait-il un problème caché de jeu de caractères ? Comment se fait-il que les titres et autres libellés ne comportent aucun accent ? Aucun charset sur les pages HTML ni aucun header sur les pages PHP ? C'est vraiment curieux de procéder ANSI (apparemment seul le fichier upload.php est en utf-8) !

Même si ce n'est pas toujours aisé, une ou plusieurs versions en iso-8859-1 ou 15 et utf-8 seraient les bienvenues...
Rejoignez-nous