ブラウザから asp.NET サービスにファイルをアップロードしようとしています。FileReader.readAsDataURL()
ファイルをデータURLとして使用および取得しています。
この JavaScript コードevent.target.result.match(/,(.*)$/)[1]
を使用して、自分のファイルのみを base64 形式で取得しています。これは私がサービスに送信しているものです。
以下のコードを使用して、ファイルを分離ストレージに保存しています
IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(
IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);
byte[] byteArray = Convert.FromBase64String(data);
IsolatedStorageFileStream stream = new IsolatedStorageFileStream("myfile",
FileMode.Create, isoStore);
StreamWriter writer = new StreamWriter(stream);
writer.Write(byteArray);
writer.Close();
残念ながら、保存しようとしているファイルが壊れています。私は何か間違ったことをしていますか?これを行うためのより良い方法はありますか?
編集: Gmail スタイルのファイル アップロードを実現しようとしています。フォームを試してみましたが、非常に複雑です。
私の ajax 呼び出しは次のようになります。
var query = {
"data": fileData,
"fileName": fileName
};
$.ajax({
type: "POST",
url: "Page.aspx/UploadFile",
data: JSON.stringify(query),
contentType: "application/json; charset=utf-8",
dataType: "JSON"});
UTF-8エンコーディングに関連するものでしょうか?