У меня есть <input type="file">
с выбранным локальным файлом, который я бы хотел загрузить на сервер в виде файла, а не как Blob. Я хватаю его с помощью jQuery (элемент, а затем .files[0]
или .prop('files')[0]
).JavaScript - Файл является экземпляром файла, но `instanceof File` является ложным
По всем признакам, кроме одного, прототип этого объекта File:
Object.getPrototypeOf(file) // => File {slice: function}
file.__proto__ // => File {slice: function}
file.constructor // => function File() { [native code] }
file.constructor.prototype // => File {slice: function}
И еще:
file instanceof File // => false
file instanceof Blob // => true
Что это дает?
Разве это не наоборот? https://developer.mozilla.org/en/docs/Web/API/Blob «Интерфейс File основан на Blob, наследует функциональность blob и расширяет его для поддержки файлов в системе пользователя». – zerkms
Да, файл наследуется от Blob, поэтому ожидается, что 'file instanceof Blob' будет true, так же, как вы ожидали бы, что' dog instanceof Animal' будет true. Но очень странно находить «file instanceof File» или «dog instanceof Dog» ложным. – Zach
В каком браузере вы тестируете? Он работает как ожидается в Chrome. http://jsfiddle.net/drzfmgba/ –