2017-01-04 2 views
0

Я пытаюсь прочитать ширину и высоту файлов, которые я получаю после нажатия на кнопку Browser:Как правильно установить новое изображение в следующей ситуации?

for (let i = 0; i < this.uploadingPanoramas.length; i++) { 
    const img = new Image() // eslint-disable-line 
    console.log('file', this.uploadingPanoramas[i].file) 
    img.src = this.uploadingPanoramas[i].file 
    console.log('img', img) 
    img.onload(() => { 
    console.log('width', img.width) 
    }) 
} 

console.log('file') журналы:

enter image description here

console.log('file') пиловочник: <img src="[object File]">

Так что img.onload на самом деле не работает, потому что я не получаю изображение.

Каков правильный способ сделать это?

EDIT:

this.uploadingPanoramas представляет собой массив, какие объекты, содержащие файлы:

[{ 
    file: File, 
    progress: 0 
}, { 
    file: File, 
    progress: 0 
}] 
+0

Что такое 'uploadingPanoramas'? – Satpal

+0

@Satpal Я обновил вопрос. – alex

+0

Кажется, вам нужно 'var reader = new FileReader(); reader.onload = function (e) { img.src = e.target.result; } reader.readAsDataURL (this.uploadingPanoramas [i] .file); ' – Satpal

ответ

1

Как this.uploadingPanoramas[i].file является File типа вы можете использовать FileReader для генерации URL данных с использованием методы readAsDataURL().

Объект FileReader позволяет веб-приложениям асинхронно читать содержимое файлов (или необработанных буферов данных), которые хранятся на компьютере пользователя, используя File или Blob объектов для указания файла или данных для чтения.

var reader = new FileReader(); 
reader.onload = function (e) { 
    img.src = e.target.result; 
} 
reader.readAsDataURL(this.uploadingPanoramas[i].file); 
Смежные вопросы