0

私の Web サイトでは、ユーザーが指定した形式の xml ファイルをアップロードする必要があります。したがって、クライアント側で構文と形式のチェックを行い、サーバーにアップロードする前にそれらのエラーを修正できるようにします。(ハードドライブ上の実際のローカルファイルを変更する必要はありません。サーバーに送信するデータを変更するだけで済みます)現在使用しているもの:

var reader = new FileReader();
reader.onload = function(e) {
  var xml = e.target.result;
  // I help them correct xml here, this will involve lots of interaction with user,
  // so I want it only happen on client side
  var correctXML = fixSyntaxAndFormat(xml);  
  $.post('/foo/bar', {xml: correctXML});
}
reader.readAsText(evt.target.files[0]);

このコードは機能しますが、実際にアップロードされたファイルではなく、投稿データで xml を送信します。ファイルのアップロードの進行状況を監視し、他のファイル情報を保存したいので、次のようなものがあればいいのにとoldfile.content = correctXML 思い<input type="file"/>ます。これは可能ですか?または、これを行う「正しい」方法はありますか?

ありがとう

更新 austincheney の例に感謝します。作成してnew Blob()、これを使用して元のファイルを置き換えます。うまくいくようです。

4

1 に答える 1

0

はい、これは完全に可能であり、通常はファイルのドラッグ アンド ドロップ操作を支援するために使用されます。たとえば、ユーザーがファイルをテキストエリアにドロップできるようにしたい場合は、テキストエリアを、ファイルのパスが入力タイプのファイル要素にサイレントに供給されるドロップ ゾーンにすることができます。私は自分のサイトでこれを行います。

http://prettydiff.com/pd.jsで関数 pd.file と pd.filedrop をチェックアウトし、 http: //prettydiff.com/のツールで結果をデモします。

于 2012-08-29T23:05:18.643 に答える