11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
J'ai mis sur mon site un fichier .gpx (un tracé GPS) disponible en téléchargement. Le problème, c'est lorsqu'on le télécharge celui s'ouvre dans le navigateur. J'aimerai plutôt que l'on ai le choix traditionnel entre ouvrer ou enregistrer.
Sur d'autres sites c'est le cas (pour ce genre de format de fichier) et j'ai cru comprendre que ça passait par du javascript.

Auriez-vous des infos?

Merci d'avance.
Non, ça passe surtout par la configuration du serveur et le type MIME déclaré. Si l'extension est inconnue du serveur, il va sans doute utiliser le type par défaut, qui suivant les configurations est soit text/plain (texte brut), soit application/octet-stream (soupe d'octets). Vu le comportement actuel, je dirais que le défaut est text/plain.
Je me suis un peu penché sur la question, mais j'avance guère. Pas sur que ce soit dû au type MIME mais comme je suis sur que j'y ai capté pas grand chose, le doute m'habite.

Quoiqu'il en soit le problème demeure. Voici donc le même fichier qui réagi différemment quand on le télécharge :
-depuis cette page : http://www.tracegps.com/fr/parcours/circuit6720.htm ("Télechargez le fichier GPX" dans la colonne droite)
-depuis cette page : http://www.vttdugarlaban.com/trails/jogging-calanques.php#sugiton (bouton télécharger le tracé GPS)

Merci d'avance...
La première est un appel à une fonction php, donc je ne sais pas ce qu'il y a dedans :

<a href="javascript:void(0)" onClick="window.open('http://www.tracegps.com/index.php?func=telecharge&idcircuit=6720&type=gpx',null,'width=800,height=300, status=no, directories=no, toolbar=no, location=no, menubar=no, scrollbars=no, resizable=no');" class="Style20">Télechargez le fichier GPX</a>


Il passe un paramètre "type=gpx", j'imagine que la fonction renvoit le type MIME qui va bien (donc surement application/octet-stream).

En revanche, sur mon poste, vu que je n'ai rien pour afficher les GPX, le lien de ton site m'affiche directement le fichier texte (XML). Et en affichant le header de la page, c'est bien au format text/plain.
C'est parfaitement résumé.
Je voudrais éviter que le fichier s'ouvre. Si je comprends un peu, ça passe par une fonction (ou je ne sais quoi). C'est compliqué à faire ou à trouver?
edit : texte effacé (réponse type n'importe quoi ^^ je reviens avec la bonne)
Modifié par mistike (02 Dec 2009 - 13:54)
Salut,

Avec une header ?
En reprenant l'exemple de la doc

// Vous voulez afficher un gpx
header('Content-type: application/gpx');

// Il sera nommé downloaded.gpx
header('Content-Disposition: attachment; filename="downloaded.gpx"');

// Le source du gpx original.gpx
readfile('original.gpx');
C'est ce que je cherchais, merci jo_link_noir ^^

On peut aussi le faire de façon globale dans le .htaccess (sous apache) je crois.