OVH Cloud OVH Cloud

est-ce possible d'ouvrir un fichier sur le client en javascript ?

11 réponses
Avatar
Alfred Wallace
Bonsoir les guruz !

j'ai lu ceci :

""For security reasons, you cannot programmatically access the file
system of client machines""

je supose que c'est vrai.

Mais, mon pb est le suivant :

à l'ouverture dune page html, je dois lire un fichier qui se trouve
toujours (dans mon intranet) dans un repertoire bien determiné
du genre "c:\winnt\log\fix.log"

est-ce que je peux déjà ouvrir ce fichier ?

ensuite, une fois ouvert, ce fichier contiend une suite de 6 cars, dont
le premier, doit commencer par une lettre (D45458).

Si l'une des deux conditions n'est pas réunie (long = 6 ET premier car
est une lettre) alors, je ne charge pas la page et je redirige
vers toujours la page d'accueuil....sinon, je continue à charger ma page.

Voilà, pouvez vous m'aider ? est-ce possible ?

Merci pour vos conseils !

José

10 réponses

1 2
Avatar
ASM
Bonsoir les guruz !

j'ai lu ceci :

""For security reasons, you cannot programmatically access the file
system of client machines""

je supose que c'est vrai.


c'est l'exacte vérité et heureusement !
je n'apprécierais pas que tu viennes me bricoler mes fichiers ! :-(

Mais, mon pb est le suivant :

à l'ouverture dune page html, je dois lire un fichier qui se trouve
toujours (dans mon intranet) dans un repertoire bien determiné
du genre "c:winntlogfix.log"


est-ce que ce fichier fait partie de l'espace disque dédié au serveur ?

est-ce que je peux déjà ouvrir ce fichier ?


Le plus simple n'est-il pas d'essayer ?
Rien ne devrait t'empécher d'avoir un lien (html) pour ouvrir la page
dans le navigateur.

ensuite, une fois ouvert, ce fichier contiend une suite de 6 cars, dont
le premier, doit commencer par une lettre (D45458).

Si l'une des deux conditions n'est pas réunie (long = 6 ET premier car
est une lettre) alors, je ne charge pas la page et je redirige
vers toujours la page d'accueuil....sinon, je continue à charger ma page.

Voilà, pouvez vous m'aider ? est-ce possible ?


tenter les SSI ?

la page html doit avoir comme extension shtml ( test.shtml)

dans le JS de cette page

var controleur = '<!--#include virtual="../winnt/log/fix.log" -->';

et le JS vérifie que controleur est conforme à ce que tu veux


N'y a t-il pas moyen que ce fix.log
puisse s'appeler : fix.js ?
et contienne : controleur = 'D45458';
et soit rangé dans le serveur ?

ainsi tu peux charger ce fichier via JS

<script type="text/javascript" src="/winnt/log/fix.js"></script>
<script type="text/javascript">
function verif(){
if(controleur.charAt[0] blabla
}
verif();
</script>

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Alfred Wallace


c'est l'exacte vérité et heureusement !
je n'apprécierais pas que tu viennes me bricoler mes fichiers ! :-(


est-ce que ce fichier fait partie de l'espace disque dédié au serveur ?


Le plus simple n'est-il pas d'essayer ?
Rien ne devrait t'empécher d'avoir un lien (html) pour ouvrir la page
dans le navigateur.


tenter les SSI ?

la page html doit avoir comme extension shtml ( test.shtml)

dans le JS de cette page

var controleur = '<!--#include virtual="../winnt/log/fix.log" -->';

et le JS vérifie que controleur est conforme à ce que tu veux


N'y a t-il pas moyen que ce fix.log
puisse s'appeler : fix.js ?
et contienne : controleur = 'D45458';
et soit rangé dans le serveur ?

ainsi tu peux charger ce fichier via JS

<script type="text/javascript" src="/winnt/log/fix.js"></script>
<script type="text/javascript">
function verif(){
if(controleur.charAt[0] blabla
}
verif();
</script>

Bonjour Stéphane,


merci pour ton message auquel je n'ai pas compris grand chose. mais, ce
n'est pas de ta faute, c'est moi qui maitrise mal (tres mal)....

le fichier ".log" se trouve sur les postes clients de chaque visiteur
du site. c'est sur un intranet. ce fichier ne peut pas se trouver sur le
serveur puisque il a un contenu différent sur chaque poste clients.

Si j'ai bien compris ta soluce, tu proposes que mon fichiers ".log"
soit un "log.js", lequel (généré par une autre application) , en fait,
sera un "bout" de code javascript lui même..... que j'inclu ensuite
dans ma page ? (ouf )

je crois comprendre d'une façon generale ta soluce... mais de là à la
mettre en pratique... je vais essayer, c'est certain. mais peux tu
m'expliquer ce que tu écris :


la page html doit avoir comme extension shtml ( test.shtml)

dans le JS de cette page

var controleur = '<!--#include virtual="../winnt/log/fix.log" -->';


donc var controleur [...] sera donc dans le fichier log.js ?
je ne connais pas ce que tu as écris :
'<!--#include virtual="../winnt/log/fix.log" -->';

je vais chercher çà sur internet.


Merci encore.

José

Avatar
Jibé
Bonsoir les guruz !

j'ai lu ceci :

""For security reasons, you cannot programmatically access the file
system of client machines""

je supose que c'est vrai.

Mais, mon pb est le suivant :

à l'ouverture dune page html, je dois lire un fichier qui se trouve
toujours (dans mon intranet) dans un repertoire bien determiné
du genre "c:winntlogfix.log"

Bonjour,


ne serait il pas plus simple d'utiliser un cookie auquel vous auriez
accès facilement et qui pourrait être différent pour chaque poste?

JiBé

Avatar
Alfred Wallace


Bonsoir les guruz !

j'ai lu ceci :

""For security reasons, you cannot programmatically access the file
system of client machines""

je supose que c'est vrai.

Mais, mon pb est le suivant :

à l'ouverture dune page html, je dois lire un fichier qui se trouve
toujours (dans mon intranet) dans un repertoire bien determiné
du genre "c:winntlogfix.log"

Bonjour,


ne serait il pas plus simple d'utiliser un cookie auquel vous auriez
accès facilement et qui pourrait être différent pour chaque poste?

JiBé
Merci JiBé !

oui, un cookie pourquoi pas. mais, je ne suis pas maitre le
l'application qui genere le fichier "xxx.log", il est vrai que le cookie
aurait, en premier avantage (à mon sens) une date de validité.

auriez vous un exemple de generation de cookie avec, par exemple une
validité de 30 minutes ?


Merci bien pour ce conseil !

José


Avatar
Jibé
Google m'a dit :
http://www.conseil-creation.com/informatique/internet/cookies.php

JiBé
auriez vous un exemple de generation de cookie avec, par exemple une
validité de 30 minutes ?


Merci bien pour ce conseil !

José








Avatar
ASM
Bonjour Stéphane,


Bonjour Alfred,

merci pour ton message auquel je n'ai pas compris grand chose. mais, ce
n'est pas de ta faute, c'est moi qui maitrise mal (tres mal)....


Je suis sûr de n'avoir pas plus compris que toi ! :-/
Je n'y connais rien en Itranet ...
çà fontionne par appels hhtp ?

le fichier ".log" se trouve sur les postes clients de chaque visiteur
du site. c'est sur un intranet. ce fichier ne peut pas se trouver sur le
serveur puisque il a un contenu différent sur chaque poste clients.

Si j'ai bien compris ta soluce, tu proposes que mon fichiers ".log"
soit un "log.js", lequel (généré par une autre application) , en fait,
sera un "bout" de code javascript lui même..... que j'inclu ensuite
dans ma page ? (ouf )


bon ... çà semble à l'eau


m'expliquer ce que tu écris :


la page html doit avoir comme extension shtml ( test.shtml)

dans le JS de cette page

var controleur = '<!--#include virtual="../winnt/log/fix.log" -->';



là on est dans un système employant les SSI du serveur

Dans le code JS on fait inclure le contenu du fichier log
grâce aux SSI

donc var controleur [...] sera donc dans le fichier log.js ?


non, 'controleur' serait une variable
du javascript de ta page normale intranet (suffixée en shtml)

ce 'controleur' aurait aors pour valeur : 'D12345'
ne restera qu'à verifier cette variable comme tu le désires

je ne connais pas ce que tu as écris :
'<!--#include virtual="../winnt/log/fix.log" -->';


c'est une instruction en SSI (Serveur Side Includes)
inclure le fichier à l'adresse relative : '../winnt/log/fix.log'
si c'est pour inclure à une adresse absolue, tenter :
<!--#include file="c:winnt/log/fix.log" -->

Mais y a des chances que le serveur refuse çà ...
(sortie du domaine)

je vais chercher çà sur internet.


les SSI ?
www.scarabee.com/TRANCHES/tranches.html
http://www.irt.org/articles/js166/index.htm


pour en revenir à la question : ouvrir un fichier de son ordi

<a href="c:winnt/log/fix.log">login</a>
marche-ce ?

un truc tiré par les cheveux :

<script type="text/javascript">
var controleur;
function pop(){
passe = window.open('c:winnt/log/fix.log','','widthP,heightP');
passe.onload = function() {
self.focus();
controleur = passe.document.body.innerHTML;
passe.close();
if (confirm('controleur = '+controleur)) // à enlever après tests
verif();
}
}
function verif() {
if(controleur blabla) // conditions à compléter
self.location="http://localhost/page_suivante.htm";
else
self.location="http://localhost/index.htm";
}
pop();
</script>

à mettre dans le head de la page
en corrigeant l'url du c:
(je ne sais comment çà doit s'écrire sur PC)

de toute façon, comme attendu, çà ne fonctionne qu'en 'local' et avec FF
et ça ne fonctionne pas sur mon serveur :
Erreur : Access to 'c:/Internet/aaa/fix.log' from script denied

çà ne fonctionne qu'en local (sans http)
il suffit donc que la première page soit ouverte en local
et qu'après verif
on soit redirigé sur le serveur

mais, après tout ... c'est-y pas exactement ce que tu veux faire ?

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
kurtz le pirate
In article <43e27f96$0$18346$,
Alfred Wallace wrote:

Bonsoir les guruz !

j'ai lu ceci :

""For security reasons, you cannot programmatically access the file
system of client machines""

je supose que c'est vrai.

Mais, mon pb est le suivant :

à l'ouverture dune page html, je dois lire un fichier qui se trouve
toujours (dans mon intranet) dans un repertoire bien determiné
du genre "c:winntlogfix.log"

est-ce que je peux déjà ouvrir ce fichier ?

ensuite, une fois ouvert, ce fichier contiend une suite de 6 cars, dont
le premier, doit commencer par une lettre (D45458).

Si l'une des deux conditions n'est pas réunie (long = 6 ET premier car
est une lettre) alors, je ne charge pas la page et je redirige
vers toujours la page d'accueuil....sinon, je continue à charger ma page.

Voilà, pouvez vous m'aider ? est-ce possible ?

Merci pour vos conseils !

José


pour faire ça, il faut utiliser un cookie. c'est fait pour ! en plus
moi, sous unix, j'ai pas de c:... tu fais comment ?

Avatar
Bertrand B
Bonsoir les guruz !

j'ai lu ceci :

""For security reasons, you cannot programmatically access the file
system of client machines""



Il te faut abaisser la sécurité des clients .. la méthode diffère
suivant les navigateurs et tu ne peut pas le faire par script.
Un lien utile
http://www.geckozone.org/articles/2005/09/05/86-utilisation-des-kits-grap hiques-proposes-par-certains-sites-option-security-checkloaduri




Merci pour vos conseils !

José
De nada


Avatar
ASM

Bonsoir les guruz !

j'ai lu ceci :

""For security reasons, you cannot programmatically access the file
system of client machines""


Il te faut abaisser la sécurité des clients ..


Je ne comprends qu'il faille jouer à ce truc risqué
L'ouverture d'un fichier du DD par un navigateur est tt à fait possible
menu : Fichier / Ouvrir

Le pb que je rencontre est que mon IE refuse d'ouvrir un fichier *.log
et les autres navigateurs (excepté FF) ne savent quoi en faire ... :-(


--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Alfred Wallace


Bonsoir les guruz !

j'ai lu ceci :

""For security reasons, you cannot programmatically access the file
system of client machines""



Il te faut abaisser la sécurité des clients ..



Je ne comprends qu'il faille jouer à ce truc risqué
L'ouverture d'un fichier du DD par un navigateur est tt à fait possible
menu : Fichier / Ouvrir

Le pb que je rencontre est que mon IE refuse d'ouvrir un fichier *.log
et les autres navigateurs (excepté FF) ne savent quoi en faire ... :-(


ici, le risque est "limité" parceque tout celà se passe sur un serveur

LAMP intranet.

Donc, les micros visualisant cette page sont dans une zone qui ne peux
pas acceder l'internet, ni accessible de l'exterieur.

Merci pour vos conseils.


José



1 2