Путь к файлам HTML5 и спискам файлов - PullRequest
7 голосов
/ 01 июля 2010

Мне интересно, где путь к файлу хранится в объекте File в HTML javascript.

Я использовал WebKit DevTools и получил это:

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

Здесь есть имя, размер и типы файлов (любой знает, почему имя и размер имеют 2 переменные), но путь не указан.

Есть ли способ найти путь к файлу, и если нет, как браузер и javascript читают файл (например, методы POST и определение типа и размера)?

1 Ответ

8 голосов
/ 02 июля 2010

Как вы можете прочитать в спецификации WHATWG HTML ,

[f] или по историческим причинам, атрибут value IDL ставит префикс имени файла сстрока "C: \ fakepath \".Некоторые устаревшие пользовательские агенты фактически включали полный путь (который был уязвимостью в безопасности).

Читая в MDC , мы видим, что реализация объекта File в Mozilla имеет (нестандартное) свойство с именем mozFullPath, содержащее

[t] полный путь к указанному файлу;доступно только для кода с привилегиями UniversalFileRead в chrome.

Эта страница также отвечает на ваш вопрос об избыточных данных в объекте File: свойства fileName и fileSize устарели.Также посмотрите W3C File API Working Draft , где они не упомянуты.

Чтобы ответить на вторую часть вашего вопроса:

, если нет, то какбраузер и JavaScript читают файл (например, методы POST и определяют тип и размер)?

Конечно, внутренне доступен полный путь к файлу (и он отображается в нескольких браузерах для пользователя.), но он недоступен для сценариев JavaScript, запускаемых на веб-странице.

Кстати, несколько лет назад об этом говорилось в списке рассылки WHATWG .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...