10

ファイル入力からオブジェクトをシリアル化する必要がありFileます。これにより、オブジェクトを保存し、解析してファイルオブジェクトに戻し、オブジェクトを使用して読み取ることができFileReaderます。

これがGoogleChromeで可能かどうか誰かが知っていますか?

問題はfile.pathプロパティの保護にあると思います。Webkitブラウザーはこのプロパティを非表示にするので、シリアル化するとパスが削除されると思います。

そしてもちろん、FileReaderはパス情報なしではそれを読み取ることができません。

次に例を示します。

var files = uploadControl.files[0];
var dataFile = JSON.stringify(files);
var newFile = JSON.parse(dataFile);
var reader = new FileReader();
reader.onload = (function(event) {
    var fileContents = event.target.result;
});
reader.readAsText(newFile);

何も起こりません。リーダーがロードされていません。JSONオブジェクトを渡すと、それも機能しません。

4

1 に答える 1

7

原則として、あなたが求めていることは不可能です。ファイルオブジェクトを表すテキストを作成できる場合は、そのテキストを最初から作成してシリアル化を解除し、ユーザーが許可していないファイルにアクセスできるようにします。

(これの例外は、代表的なテキストが、ブラウザだけが最初に提供できた可能性のある、ある種の堅牢な秘密のビット文字列(暗号的に署名された、またはルックアップテーブルのスパースキー)である場合です。存在していれば、それは文書化されており、あなたはすでにそれを見つけているでしょう。)

于 2013-03-15T04:20:46.020 に答える