Tôi đang cố cung cấp giải pháp chỉ tập lệnh để đọc nội dung của tệp trên máy khách thông qua trình duyệt.Đọc nội dung tệp ở phía máy khách trong javascript trong các trình duyệt khác nhau
Tôi có giải pháp hoạt động với Firefox và Internet Explorer. Nó không đẹp, nhưng tôi chỉ cố gắng điều vào lúc này:
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 :(";
}
}
tôi có thể gọi getFileContents()
và nó sẽ viết nội dung vào khu vực fileContents
văn bản.
Có cách nào để thực hiện việc này trong các trình duyệt khác không?
Tôi quan tâm nhất đến Safari và Chrome vào lúc này, nhưng tôi mở để đề xuất cho bất kỳ trình duyệt nào khác.
Edit: Để đối phó với câu hỏi: "Tại sao bạn muốn làm điều này?":
Về cơ bản, tôi muốn băm nội dung tập tin cùng với một one-time-password trên các mặt hàng vì vậy tôi có thể gửi lại thông tin này dưới dạng xác minh.
không phải là tôi có một câu trả lời nhưng chỉ vì lợi ích của sự rõ ràng, làm bạn cần phải biết vị trí của tập tin? Nếu không, vị trí của tập tin có phải được đọc từ một tập tin đầu vào hoặc nó có thể là một textbox/textarea/bất cứ điều gì? –
Câu hỏi hay. Không, tôi không thực sự quan tâm về nơi mà các tập tin đến từ, chỉ nội dung của nó. Sử dụng một đầu vào tập tin có vẻ hợp lý với tôi mặc dù nó là html bản địa - có một điều ít hơn tôi phải làm. – Damovisa
tại sao bạn muốn làm điều này? máy chủ có nghĩa là để làm điều đó. – geowa4