私はjsファイルAPIを使用しており、次のようにFileReaderでファイルを読んでいます:
var reader = new FileReader();
reader.onload = handleReaderLoad;
reader.readAsBinaryString(file);
これは、ファイル コンテンツを取得し、jquery.ajax 呼び出しを使用してサーバーに送信するリーダー ロード ハンドラーです。
function handleReaderLoad(evt) {
fileToSend.Content = evt.target.result;
$.ajax({
url: '@Url.Action("Upload")',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ file: fileToSend }),
success: function (result) {
alert('success');
}
});
}
サーバー側で私は持っています:
[HttpPost]
public string Upload(UploadedFile file)
{
// save file
try
{
FileStream fs = new FileStream(@"c:\" + file.Name, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(Encoding.UTF8.GetBytes(file.Content));
}
catch (Exception) { }
return null;
}
UploadedFile は次のとおりです。
public class UploadedFile
{
public string Name { get; set; }
public string Content { get; set; }
}
ファイルの保存はできたのですが、中身が違います。エンコーディングと関係があることは知っていますが、サーバー上で同じファイルを取得できません。私が間違っていることを教えてください。