XMLHttpRequest オブジェクトを使用してサーバーにファイルをアップロードする JavaScript コードがあります。C# を使用して記述された Web サービスで、ファイルをストリームとして受け入れています。
int uploadFile(Stream file)
{
using (FileStream fileStream = File.Create(System.AppDomain.CurrentDomain.BaseDirectory + "file.csv"))
{
byte[] buffer = new byte[8 * 1024];
int len;
while ((len = file.Read(buffer, 0, buffer.Length)) > 0)
{
fileStream.Write(buffer, 0, len);
}
}
//process file
return 0;
}
JavaScript では、ファイルはフォーム データ オブジェクトとして送信されます。
var fd = new FormData(document.forms.namedItem("file"));
var req = new XMLHttpRequest();
req.open("POST", url, true);
req.send(fd);
現在、Excelファイルをサーバーに保存しようとしています。ストリームをバイト配列に読み取り、csv ファイルに書き込みます。しかし、私が直面しているエラーは、csv ファイルのデータが破損していることです。
どこが間違っていますか、または Web サービスを介してファイルをアップロードして保存する他の方法はありますか?
ありがとう。