J'essaie de fournir une solution de script uniquement pour lire le contenu d'un fichier sur une machine cliente via un navigateur.
J'ai une solution qui fonctionne avec Firefox et Internet Explorer. Ce n'est pas joli, mais j'essaye seulement des choses pour le moment:
function getFileContents() {
var fileForUpload = document.forms[0].fileForUpload;
var fileName = fileForUpload.value;
if (fileForUpload.files) {
var fileContents = fileForUpload.files.item(0).getAsBinary();
document.forms[0].fileContents.innerHTML = fileContents;
} else {
// try the IE method
var fileContents = ieReadFile(fileName);
document.forms[0].fileContents.innerHTML = fileContents;
}
}
function ieReadFile(filename)
{
try
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fh = fso.OpenTextFile(filename, 1);
var contents = fh.ReadAll();
fh.Close();
return contents;
}
catch (Exception)
{
return "Cannot open file :(";
}
}
Je peux appeler getFileContents()
et il écrira le contenu dans la fileContents
zone de texte.
Existe-t-il un moyen de faire cela dans d'autres navigateurs?
Je suis plus préoccupé par Safari et Chrome pour le moment, mais je suis ouvert aux suggestions pour tout autre navigateur.
Edit: En réponse à la question "Pourquoi voulez-vous faire cela?":
Fondamentalement, je souhaite hacher le contenu du fichier avec un mot de passe à usage unique côté client afin de pouvoir renvoyer ces informations à titre de vérification.