【发布时间】:2013-01-15 10:02:35
【问题描述】:
我正在使用 js File 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; }
}
我设法保存了文件,但内容不同。我知道它与编码有关,但我只是没有在服务器上获得相同的文件。你能告诉我我做错了什么吗?
【问题讨论】:
-
你想用什么格式保存文件,现在是什么格式...
-
这可能是因为 JSON 是一种文本格式.. 不是二进制的。你必须序列化它..
-
顺便说一句,你正在吞下异常......
-
我想以与客户端相同的格式保存它,所以任何格式,文档,图像格式,pdf...
标签: c# javascript asp.net asp.net-mvc-3