1

fileReaderクラスのないファイルからバイナリデータを取得できますか?ファイルをアップロードしようとしていますが、Firefoxとchrome / webkitで動作していますが、safari5にはファイルリーダーがありません。

Gmailにはサファリ5で機能するドラッグアンドドロップがあるため、バイナリデータを取得する方法が必要です。

4

2 に答える 2

0

私は同じ問題に直面していますが、xhr.send(file)についてはまだわかりません。ASP.NETを使用しているときに、「潜在的に危険なデータが検出されました...」というエラーが発生しました。FireReader自体が欠落していることを考えると、xhr.send(file)はSafariによって実装されていないと思いました。

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

私が今直面しているもう1つの問題があります。これは、ChromeでのHTML5 DataTransfer検出エラーに直面し、解決策を見つけた場合に備えてお知らせください。

于 2011-02-03T13:29:45.673 に答える
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
于 2010-07-08T05:07:09.773 に答える