html5 fileapi二进制数据

时间:2010-07-08 04:15:11

标签: html5 gmail filereader

你可以从没有fileReader类的文件中获取二进制数据吗?我正在尝试上传文件,我让它在firefox& chrome / webkit但safari 5没有文件读取器。

必须有一种获取二进制数据的方法,因为gmail具有在safari 5中有效的拖放功能。

2 个答案:

答案 0 :(得分:0)

我完成了这项工作,感谢此处的演示:http://webreflection.blogspot.com/2009/03/safari-4-multiple-upload-with-progress.html

我只需要提供dataTransfer文件...

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

答案 1 :(得分:0)

我一直面临同样的问题,但我仍然不确定xhr.send(文件)。在使用ASP.NET时,我收到错误“检测到潜在危险数据......”。我认为考虑到FireReader本身缺失,Safari并没有实现xhr.send(文件)。

很高兴知道xhr.send(文件)在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

我现在面临的另一个问题是HTML5 DataTransfer detection error in Chrome,如果你遇到并找到了解决办法,请告诉我。