2014-11-27 2 views
1

У меня проблема с Firefox и IE11, которая кажется очень странной. Я хочу использовать input type = file, чтобы получить файлList, он работает в chrome и Safari, значение возвращает имя файла, но fileList пуст в FireFox и IEhtml5 input type файл браузер отличия

вот html, просто поместите его в файл и открыть с помощью браузера или разместить его на веб-сайте и загрузить страницу.

<html> 
<head> 
<title>input file test</title> 
<script> 
function file1_click(){ 
"use strict";  
var f = document.getElementById('file1'); 
alert('value=' + f.value + '\nfiles=' + JSON.stringify(f.files)); 
} 
</script> 
</head> 
<body> 
<form id="form1"> 
<input type="file" id="file1" onchange="file1_click();" /> 
</form> 
</body> 
</html> 
+0

Это прекрасно работает в Firefox, но она возвращает родной 'объект fileList' и' stringify' просто возвращает разные результаты, если вы пытаетесь на самом деле войти в файл 'console.log (f.files [0]) 'вы видите, что файл есть. – adeneo

ответ

0

f.files - это объект. Вы можете пройти через него.

function file1_click(){ 
    "use strict";  
    var f = document.getElementById('file1'); 
    var filesArray = []; 
    for(var i=0, len=f.files.length; i<len; i++) { 
     filesArray.push(f.files[i]['name']) 
    } 
    alert('value=' + f.value + '\nfiles=' + JSON.stringify(filesArray)); 
} 

Кроме того, вам нужно будет указать свойство «multiple» на входе вашего файла, если вы хотите иметь более одного изображения.

<input type="file" id="file1" onchange="file1_click();" multiple /> 
Смежные вопросы