Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

document.open() et content-type

7 réponses
Avatar
O.L.
Bonjour,

Je cherche à savoir comment, en JavaScript, "ouvrir" un document en
spécifiant le Content-Type que je peux.
Par exemple je voudrais, lorsque je spécifie le Content-Type
application/octet-stream, qu'une fenêtre de téléchargement s'ouvre et
demande à l'utilisateur s'il veut enregistrer le programme, sachant
qu'au départ j'ai le contenu d'un fichier .exe binaire dans une
variable.

J'ai trouvé un code mais qui ne marche pas (quelque soit le
content-type que je met) :
document.open("application/octet-stream");
document.write(binary);
document.close();

Une idée ? :)

@+
Olivier

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net

7 réponses

Avatar
ASM
Bonjour,

Je cherche à savoir comment, en JavaScript, "ouvrir" un document en
spécifiant le Content-Type que je peux.
Par exemple je voudrais, lorsque je spécifie le Content-Type
application/octet-stream, qu'une fenêtre de téléchargement s'ouvre et
demande à l'utilisateur s'il veut enregistrer le programme, sachant
qu'au départ j'ai le contenu d'un fichier .exe binaire dans une variable.

J'ai trouvé un code mais qui ne marche pas (quelque soit le content-type
que je met) :
document.open("application/octet-stream");
document.write(binary);


what that : 'binary' ?

binary = 'toutes les lignes du programme'

Oui?
et c'est ok?
c a d elles sont bien écrites pour du javascript ?

document.close();

Une idée ? :)


j'a rien compris de ce que tu veux faire
- faire écrire le prg sur la page html ?
- lancer le dowload automatiquement et obligatoirement ?

si c'est le cas 2 ...
merci d'abandonner : que ferais-je d'un *.exe sur mon Mac ?

de tte façon, à mon idée, ce n'est pas possible
le JS ne devrait pas permettre ce download automatique
(interférence avec le systeme de la machine non permis en JS)


à la limite j'essaierais qque chose du genre :

<a href="truc.exe" enctype="application/octet-stream">truc.exe</a>

ou
<from action="truc.exe" method"get"
enctype="application/octet-stream"
onsubmit= return confirm('Voulez-vous reellement enregistrer cet exe?');">
<input type=submit value="truc.exe">
</form>


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
O.L.
ASM a couché sur son écran :
Bonjour,

Je cherche à savoir comment, en JavaScript, "ouvrir" un document en
spécifiant le Content-Type que je peux.
Par exemple je voudrais, lorsque je spécifie le Content-Type
application/octet-stream, qu'une fenêtre de téléchargement s'ouvre et
demande à l'utilisateur s'il veut enregistrer le programme, sachant qu'au
départ j'ai le contenu d'un fichier .exe binaire dans une variable.

J'ai trouvé un code mais qui ne marche pas (quelque soit le content-type
que je met) :
document.open("application/octet-stream");
document.write(binary);


what that : 'binary' ?

binary = 'toutes les lignes du programme'

Oui?
et c'est ok?
c a d elles sont bien écrites pour du javascript ?

document.close();

Une idée ? :)


j'a rien compris de ce que tu veux faire
- faire écrire le prg sur la page html ?
- lancer le dowload automatiquement et obligatoirement ?

si c'est le cas 2 ...
merci d'abandonner : que ferais-je d'un *.exe sur mon Mac ?

de tte façon, à mon idée, ce n'est pas possible
le JS ne devrait pas permettre ce download automatique
(interférence avec le systeme de la machine non permis en JS)


à la limite j'essaierais qque chose du genre :

<a href="truc.exe" enctype="application/octet-stream">truc.exe</a>

ou
<from action="truc.exe" method"get"
enctype="application/octet-stream"
onsubmit= return confirm('Voulez-vous reellement enregistrer cet exe?');">
<input type=submit value="truc.exe">
</form>


J'aurais pas du prendre une application .exe comme exemple :/
Je repose ma question avec comme content-type : image/jpeg, ou même
model/vrml qui ne donne pas du binaire.

Le but c'est qu'une fois la page chargée, je puisse demander au
navigateur d'ouvrir une page dans laquelle j'écris mes données en
utilisant JS, que ce soit du binaire (application, image ...) ou du
texte (text/html).

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net


Avatar
Bobe
O.L. nous a dit le 01.11.2005 13:14:

Le but c'est qu'une fois la page chargée, je puisse demander au
navigateur d'ouvrir une page dans laquelle j'écris mes données en
utilisant JS, que ce soit du binaire (application, image ...) ou du
texte (text/html).



Je sais qu'on peut faire un document.open('text/plain'); seulement à
partir de Firefox 1.5. Les versions précédentes ouvrent toujours un
document HTML. IL y a peut-être des limitations au niveau des types de
média autorisés.

--
Aurélien Maille

"la vie d'un geek est un combat perpétuel contre l'imperfection"

Avatar
ASM

J'aurais pas du prendre une application .exe comme exemple :/
Je repose ma question avec comme content-type : image/jpeg, ou même
model/vrml qui ne donne pas du binaire.

Le but c'est qu'une fois la page chargée, je puisse demander au
navigateur d'ouvrir une page dans laquelle j'écris mes données en
utilisant JS, que ce soit du binaire (application, image ...) ou du
texte (text/html).


doit me manquer qques connaissances côté programmation
ou binaries
cer, y a pas, je ne comprends pas ce que tu veux faire

voir comment est écrit-codé un *.gif ? par exemple ?
et si oui : pourquoi ?


j'arrive à 1/2 à qque chose (FF) avec çà :

function pop(obj) {
truc=window.open(obj,'','widthP0,height00,resizable=1');
truc.onload = function() {
alert('code');
CODE=window.open('' ,'CODE','heightp0, width€0');
CODE.document.write('<FORM NAME="SPAM"><TEXTAREA NAME="SRC" ROWSE COLS‚></TEXTAREA></FORM>');
CODE.document.SPAM.SRC.value=truc.document.documentElement.innerHTML;
};
}

<a href="javascript:pop('photo.jpg');">pop</a>

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
O.L.
Bobe a émis l'idée suivante :
O.L. nous a dit le 01.11.2005 13:14:

Le but c'est qu'une fois la page chargée, je puisse demander au navigateur
d'ouvrir une page dans laquelle j'écris mes données en utilisant JS, que ce
soit du binaire (application, image ...) ou du texte (text/html).



Je sais qu'on peut faire un document.open('text/plain'); seulement à partir
de Firefox 1.5. Les versions précédentes ouvrent toujours un document HTML.
IL y a peut-être des limitations au niveau des types de média autorisés.


Merci pour l'info :)
Moi j'aurais besoin d'un truc qui marche à peu près partout (FF et IE
presque toutes versions).

J'ai essayé ça sur mon FireFox 1.0.7 :
win = window.open("", "MyWin", "");
doc = win.document;
doc.open("text/plain");
doc.write("hellornworld");
doc.close();
Et effectivement ca ne marche pas.

(Tu me parles de version 1.5, je savais pas que ça existait, donc j'ai
été voir et c'est en fait une version anglaise. Mais moi je préfère
garder ma 1.0.7 en français, na ! :p)

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net


Avatar
O.L.

J'aurais pas du prendre une application .exe comme exemple :/
Je repose ma question avec comme content-type : image/jpeg, ou même
model/vrml qui ne donne pas du binaire.

Le but c'est qu'une fois la page chargée, je puisse demander au navigateur
d'ouvrir une page dans laquelle j'écris mes données en utilisant JS, que ce
soit du binaire (application, image ...) ou du texte (text/html).


doit me manquer qques connaissances côté programmation
ou binaries
cer, y a pas, je ne comprends pas ce que tu veux faire

voir comment est écrit-codé un *.gif ? par exemple ?
et si oui : pourquoi ?


Non non non, pas voir comment est codé un GIF ...

En fait je vais tout t'expliquer, c-à-d la raison principale de ma
recherche.
J'ai une applet Java non signée qui a besoin d'installer un contrôle
ActiveX sur le PC de l'utilisateur.
La méthode la plus simple (et qui marche) est de mettre par exemple une
IFRAME avec comme SRC un programme (.exe, oui je sais c'est du Windows
! :p) qui se chargera d'installer la bestiole ActiveX comme il faut.
Mais étant donné que l'activeX est gros (> 1 Mo) je voudrais afficher
une barre de progression du téléchargement. Pour ça, je pensais
utiliser une Applet qui irait télécharger petit à petit le fichier,
afficherait une jolie "loading bar", et qui à la fin ... lancerait le
fichier .exe. Mais comment lui faire lancer ce fichier .exe dont elle
connait le contenu binaire ?
Telle est la question ... Et je serais curieux de savoir si c'est
possible :)

Mais sinon, je viens de penser que je pourrais faire télécharger à
l'utilisateur un tout petit .exe, qui *lui* irait télécharger l'ActiveX
avec une barre de progression, et qui l'installerait ensuite.

Autre solution : passer par le FileSystemObject, mais si l'utilisateur
est un peu prudent niveau sécurité, il aura tout désactivé.

Bref, c'est du bricolage que j'essaie de faire, mais c'est ça qui est
marrant ^^ :)

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net


Avatar
O.L.
Bobe avait écrit le 01/11/2005 :
O.L. nous a dit le 01.11.2005 13:14:

Le but c'est qu'une fois la page chargée, je puisse demander au navigateur
d'ouvrir une page dans laquelle j'écris mes données en utilisant JS, que ce
soit du binaire (application, image ...) ou du texte (text/html).



Je sais qu'on peut faire un document.open('text/plain'); seulement à partir
de Firefox 1.5. Les versions précédentes ouvrent toujours un document HTML.
IL y a peut-être des limitations au niveau des types de média autorisés.


J'ai rien dit, la v1.5 est aussi dispo en Français même si c'est pas
celle là qu'il me propose par défaut.

--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net