Javascript 什么';在iOS8中使用FileReader最安全的方法是什么?

Javascript 什么';在iOS8中使用FileReader最安全的方法是什么?,javascript,html,error-handling,ios8,filereader,Javascript,Html,Error Handling,Ios8,Filereader,我有一个带有文件选择器的表单我一直在使用手机摄像头拍摄照片并将其显示在网页上: <input type="file" id="fileInput" accept="image/*" onchange="inputFileChanged();" /> <img alt="The Picture" src="Content/1.jpg" id="imgDisplay" /> <script type="text/javascript"> function

我有一个带有文件选择器的表单<代码>我一直在使用手机摄像头拍摄照片并将其显示在网页上:

<input type="file" id="fileInput" accept="image/*" onchange="inputFileChanged();" />
<img alt="The Picture" src="Content/1.jpg" id="imgDisplay" />
<script type="text/javascript">

    function inputFileChanged() {
        //alert("Input File Changed");
        var files = document.getElementById("fileInput").files;

        if (window.FileReader) { //Check browser - does it support File Reader?
            //alert("reader OK");
            loadImageFile(files);
        }
        else {
            alert("File Reader not Supported");
        }
    }

    function loadImageFile(files) {
        if (files && files.length) {
            var reader = new FileReader();
            reader.onload = (function (theImageElement) {
                return function (e) {
                    //alert("reader loaded");
                    theImageElement.src = e.target.result;
                }
            })(document.getElementById("imgDisplay"));
            reader.onerror = function (e) {
                alert("error " + e.target.error.code);
            }
            reader.readAsDataURL(files[0]);
        } else {
            alert("no file");
        }
    }
</script>

函数inputFileChanged(){
//警报(“输入文件已更改”);
var files=document.getElementById(“fileInput”).files;
如果(window.FileReader){//检查浏览器-它是否支持文件读取器?
//警报(“读卡器正常”);
loadImageFile(文件);
}
否则{
警报(“不支持文件读取器”);
}
}
函数loadImageFile(文件){
if(files&&files.length){
var reader=new FileReader();
reader.onload=(函数(theImageElement){
返回函数(e){
//警报(“读卡器已加载”);
theImageElement.src=e.target.result;
}
})(document.getElementById(“imgDisplay”);
reader.onerror=函数(e){
警报(“错误”+e.target.error.code);
}
reader.readAsDataURL(文件[0]);
}否则{
警报(“无文件”);
}
}
在iPhone Safari iOS8上,返回错误代码4(不可读)。 这是一个已知的bug(应该在下一版本中解决)


iPhone iOS8上的Chrome没有问题(到目前为止)

难道你不能简单地测试
结果。长度
?我认为文件阅读器工作正常。。。但多次上传无法正常工作,并为您提供0字节的文件。。。我解决了删除“multiple=”时出现的问题。。当然你只能上传一个文件。。。这在ios 7上发生。@Bergi,onload函数从未被调用…@cocco删除“multiple”属性在ios 8上没有什么区别。从未到达“onload”回调文件上传被破坏!!每个文件上传都不起作用,您可以选择一个文件或拍摄一张照片,之后JavaScript将不会获得任何数据,服务器也可以通过HTML或XMLHttpRequest上传上传帖子。这个问题似乎不适用于主屏幕网络应用程序。。。。哈哈,虫子