您可以从没有 fileReader 类的文件中获取二进制数据吗?我正在尝试上传文件,我让它在 firefox 和 chrome/webkit 中工作,但 safari 5 没有文件阅读器。
必须有一种方法来获取二进制数据,因为 gmail 具有适用于 safari 5 的拖放功能。
您可以从没有 fileReader 类的文件中获取二进制数据吗?我正在尝试上传文件,我让它在 firefox 和 chrome/webkit 中工作,但 safari 5 没有文件阅读器。
必须有一种方法来获取二进制数据,因为 gmail 具有适用于 safari 5 的拖放功能。
我一直面临同样的问题,但我仍然不确定 xhr.send(file)。在使用 ASP.NET 时,我收到错误“检测到潜在危险数据......”。考虑到 FireReader 本身丢失,我认为 Safari 没有实现 xhr.send(file) 。
很高兴知道 xhr.send(file) 在 Safari 中工作。我会尝试进一步调查。
然而,有一个更好的选择,它可以很好地工作 FormData。
var file = e.dataTransfer.files[0];
var xhr = new XMLHttpRequest();
xhr.open("POST", "upload_process.php", true);
var fd= new FormData(); //its supported in the safari, chrome and firefox 4
fd.append(file.name, file);
xhr.send(fd); //passing in file object seems to work
我现在还面临一个问题,它在 Chrome 中的 HTML5 DataTransfer 检测错误,如果您遇到并找到任何解决方案,请告诉我。
我解决了,感谢这里的演示:http ://webreflection.blogspot.com/2009/03/safari-4-multiple-upload-with-progress.html
我只需要提供数据传输文件...
var file = e.dataTransfer.files[0];
var xhr = new XMLHttpRequest();
xhr.open("POST", "upload_process.php", true);
xhr.send(file); //passing in file object seems to work