Próbuję dostarczyć rozwiązanie tylko do skryptu do odczytu zawartości pliku na komputerze klienta za pośrednictwem przeglądarki.Odczytywanie zawartości plików po stronie klienta w javascript w różnych przeglądarkach
Mam rozwiązanie, które działa z przeglądarką Firefox i Internet Explorer. To nie jest ładna, ale próbuję tylko rzeczy w tej chwili:
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 :(";
}
}
mogę zadzwonić getFileContents()
i będzie pisać zawartość do obszaru fileContents
tekstowym.
Czy jest to możliwe w innych przeglądarkach?
Najbardziej interesuję się obecnie przeglądarkami Safari i Chrome, ale jestem otwarty na sugestie dotyczące każdej innej przeglądarki.
Edit: W odpowiedzi na pytanie „Dlaczego chcesz to zrobić?”:
Zasadniczo, chcę hash zawartość pliku wraz z jednorazowym hasłem po stronie klienta więc mogę wysłać tę informację z powrotem jako weryfikację.
że nie mam odpowiedzi, ale tylko dla jasności, czy trzeba znać położenie pliku? Jeśli nie, czy lokalizacja pliku musi być odczytana z pliku wejściowego, czy może to być textbox/cokolwiek? –
Dobre pytanie. Nie, nie obchodzi mnie, skąd pochodzi plik, tylko jego zawartość. Używanie danych wejściowych do pliku wydaje mi się rozsądne, ponieważ jest to natywny HTML - jest jedna rzecz, którą muszę zrobić. – Damovisa
dlaczego chcesz to zrobić w ogóle? serwer ma to zrobić. – geowa4