Отредактировано для добавления информации о Файловом API
С тех пор как я написал этот ответ, File API был предложен в качестве стандарта и реализован в большинстве браузеров (начиная с IE 10, в котором добавлена поддержка FileReader
API). описанный здесь, хотя еще не File
API). API немного сложнее, чем более старый API Mozilla, поскольку он разработан для поддержки асинхронного чтения файлов, лучшей поддержки двоичных файлов и декодирования различных кодировок текста. некоторая документация доступна в сети разработчиков Mozilla , а также различные примеры в Интернете. Вы бы использовали его следующим образом:
var file = document.getElementById("fileForUpload").files[0];
if (file) {
var reader = new FileReader();
reader.readAsText(file, "UTF-8");
reader.onload = function (evt) {
document.getElementById("fileContents").innerHTML = evt.target.result;
}
reader.onerror = function (evt) {
document.getElementById("fileContents").innerHTML = "error reading file";
}
}
Оригинальный ответ
Похоже, нет способа сделать это в WebKit (например, Safari и Chrome). Единственные ключи, которые есть у File объекта - это fileName
и fileSize
. Согласно сообщению commit для поддержки File и FileList, они основаны на объекте File в Mozilla , но, похоже, они поддерживают только подмножество функций.
Если вы хотите изменить это, вы всегда можете отправить патч в проект WebKit. Другой возможностью было бы предложить API Mozilla для включения в HTML 5 ; список рассылки WHATWG , вероятно, является лучшим местом для этого. Если вы сделаете это, то, скорее всего, будет кросс-браузерный способ сделать это, по крайней мере, через пару лет. Конечно, отправка патча или предложения для включения в HTML 5 означает некоторую работу по защите этой идеи, но тот факт, что Firefox уже реализует ее, дает вам возможность начать с *. 1036 *