2010-06-30 34 views
7

Tôi tự hỏi nơi đường dẫn tệp được lưu trữ trong đối tượng Tệp trong javascript HTML.Đường dẫn Tệp tin và Tệp tin HTML5 HTML5

tôi đã sử dụng DevTools Webkit và nhận điều này:

FileList 
0: File 
    fileName: "script.js" 
    fileSize: 71268 
    name: "script.js" 
    size: 71268 
    type: "application/x-javascript" 
    __proto__: File 
length: 1 
__proto__: FileList 

Tên file, kích thước và các loại đang có (có ai biết lý do tại sao tên và kích thước có 2 biến), nhưng con đường không phải là.

Có cách nào để tìm đường dẫn tệp và nếu không, trình duyệt và javascript đọc tệp như thế nào (chẳng hạn như phương thức POST & xác định loại và kích thước)?

Trả lời

8

Như bạn có thể đọc trong WHATWG HTML spec,

[f] hoặc lịch sử lý do này, value IDL thuộc tính tiền tố tên tập tin với chuỗi "C: \ fakepath \". Một số tác nhân người dùng cũ thực sự bao gồm đường dẫn đầy đủ (đây là lỗ hổng bảo mật ).

Đọc trên trên MDC, chúng ta có thể thấy rằng việc thực hiện các đối tượng tập tin của Mozilla có (không chuẩn) sở hữu tên mozFullPath, chứa

[t] ông đường dẫn đầy đủ của tham chiếu tập tin ; chỉ có sẵn cho mã với các đặc quyền UniversalFileRead trong chrome.

Trang đó cũng trả lời câu hỏi của bạn về các dữ liệu dư thừa trong đối tượng File: tính fileNamefileSize đang bị phản đối. Ngoài ra, hãy nhìn vào số File API Working Draft của W3C, nơi không được đề cập đến.

Để trả lời phần thứ hai của câu hỏi của bạn:

nếu không, làm thế nào để trình duyệt và Javascript đọc các tập tin (ví dụ như POST phương pháp & xác định loại và kích thước)?

Tất nhiên, có thể truy cập đường dẫn tệp đầy đủ (trong một số trình duyệt được hiển thị cho người dùng) nhưng không thể truy cập vào tập lệnh JavaScript đang chạy trên trang web.

Nhân tiện, một vài năm trước, đã có một cuộc thảo luận về điều này trên WHATWG mailing list.

Các vấn đề liên quan