11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai développé une application javascript qui affiche les données d'un xml de façon particulière (graphique, liste, etc...).
Pour le moment j'ai quelques fichiers xml côté serveur que je charge avec :
$.ajax({ type: 'GET', url: 'data/default.xml', dataType: 'xml', ...})

Les fichiers xml peuvent être assez gros et j'économise la banque passante en chargeant le xml dans IndexedDB.

Dans un deuxième temps, je voudrais permettre au visiteur de charger son propre fichier xml, en donnant l'adresse sur son poste (par exemple : c:\temp\sample.xml), sans le stocker sur le serveur (car le fichier peut être gros), pour que ses données s'affichent dans l'application.

Je ne trouve pas de solution. Est-ce que cela est possible ?
Si oui, comment faire ?
Modifié par enguerran (13 Dec 2012 - 12:47)
Hello,

je crois qu'il faut que tu passes forcément par le coté serveur, ou alors par flash qui normalement peu avoir accès au disque.

Il faut donc que tu envois d'abord le fichier sur le serveur et ensuite que tu appel ce fichier avec ton script.
Tu as raison, il faut absolument passer par le serveur.
Absolument ? Non, car une équipe d’irrésistibles développeurs ont implémenté la spécification HTML5 "File API" qui permet, j'imagine comme pour flash, d'avoir accès aux fichiers locaux dans la page web.
Pour plus de détails :
un exemple : http://html5demos.com/file-api
une introduction par MDN : https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications
la spec W3C : http://www.w3.org/TR/FileAPI/
les navigateurs compatibles : http://caniuse.com/#search=file%20api

Merci stackoverflow Smiley cligne