fileReaderクラスのないファイルからバイナリデータを取得できますか?ファイルをアップロードしようとしていますが、Firefoxとchrome / webkitで動作していますが、safari5にはファイルリーダーがありません。
Gmailにはサファリ5で機能するドラッグアンドドロップがあるため、バイナリデータを取得する方法が必要です。
fileReaderクラスのないファイルからバイナリデータを取得できますか?ファイルをアップロードしようとしていますが、Firefoxとchrome / webkitで動作していますが、safari5にはファイルリーダーがありません。
Gmailにはサファリ5で機能するドラッグアンドドロップがあるため、バイナリデータを取得する方法が必要です。
私は同じ問題に直面していますが、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検出エラーに直面し、解決策を見つけた場合に備えてお知らせください。
ここのデモのおかげで、私はそれを解決しました: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