2014-09-23 115 views
2

我不能得到的FileReader於iOS的8工作下面的演示說明了這一點(的jsfiddle鏈接的iOS - http://jsfiddle.net/gys6rubg/1/):的FileReader不工作在iOS 8

var file = document.getElementById('file-input'); 
 
file.addEventListener('change', function(event) { 
 
    var file = this.files[0]; 
 
    
 
    if(!file) { 
 
     alert('No file'); 
 
     return; 
 
    } 
 
    
 
    var reader = new FileReader(); 
 
    var timeout = setTimeout(function() { 
 
     alert('FileReader not functioning'); 
 
    }, 500); 
 
    reader.onload = function(event) { 
 
     clearTimeout(timeout); 
 
     alert('Base64 length - ' + event.target.result.length); 
 
    };  
 
    
 
    reader.readAsDataURL(file); 
 
});
<form> 
 
    <input id="file-input" type="file" /> 
 
</form>

這個控制檯.log是大多數瀏覽器中Base64字符串的長度,但在iOS 8 Safari中,console.log的'FileReader無法運行'。

有沒有辦法解決這個問題,或者我做錯了什麼?

+0

哎呀,我不小心編輯了帖子,但未登錄。 – jkjustjoshing 2014-09-23 16:48:13

回答

2

it's a bug

應固定在下一版本

+0

沒有解決方法了嗎? – jkjustjoshing 2014-09-24 18:20:03

+0

沒有什麼是真正可用的。顯然,如果您將網頁固定到主屏幕,並且在固定時具有,但我沒有嘗試過,它就會起作用。 – sutora 2014-09-24 19:03:47

+0

我認爲我只會隨着「有一個iOS 8的錯誤,請使用其他設備或升級手機」錯誤消息。謝謝。 – jkjustjoshing 2014-09-24 19:09:50

1

我有iPhone上的Safari同樣的問題(但問題是不存在的Chrome瀏覽器iPhone!)。

如果添加了錯誤事件處理程序:

reader.onerror = function (e) { 
    alert("error " + e.target.error.code + " \n\niPhone iOS8 Permissions Error."); 
} 

你會得到錯誤代碼4. 根據HTMLGoodies - Responding to HTML5 FileReader Events

錯誤代碼4 = NOT_READABLE_ERR:該文件不能因爲一個變化的閱讀自從文件被獲取以來的權限 - 可能是因爲該文件被另一個程序鎖定。

+0

UIWebView不受影響,只是WKWebView。由於Chrome使用了UIWebView(我相信他們還沒有轉移到WKWebView),它不會遇到這個問題。 – jkjustjoshing 2014-09-25 14:32:40

+0

我正在使用iOS9,在閱讀iCloud文件(即點號文件)時遇到此問題。它給我一個錯誤代碼4.如果該文件是來自相機滾動的圖像,則不會出現問題。 – woran 2015-12-06 17:09:04