我有以下IHttpHandler(ashx)处理程序:
public class UploadFile : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
using (var fileStream = File.OpenWrite(@"C:\" + context.Request.QueryString["FileName"]))
{
context.Request.InputStream.CopyTo(fileStream);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
来自:
$.ajax({
type: "POST",
url: "UploadFile.ashx?FileName=" + file.name,
data: file,
success: function () {
alert("Success");
},
processData: false,
contentType: file.type
});
文件变量来自<input type="file" />
,使用document.getElementById("fuExcelFile").files[0]
检索。
这项工作似乎与xlsx以外的所有文件一样。使用xlsx,文件被上传,但是当我在Excel中打开它时,我收到以下错误:
我们发现“.xlsx”中的某些内容存在问题。你想要 我们试图尽可能多地恢复?如果你相信的来源 此工作簿,单击是
我不知道从哪里开始,因为它适用于其他文件:S
编辑:Here是我在十六进制编辑器中测试的文件及其图像
答案 0 :(得分:1)
这很难。
在评论的讨论中,我们发现目标文件比源文件大。 Excel仍然可以打开它但发出警告。这闻起来像是部分腐败。
结果File.OpenWrite
追加到现有文件。在测试期间,您一遍又一遍地附加相同的文件。
调试这个的关键是二进制比较文件。如果您遇到错误并且不知道它是什么:调查!实验。获取新信息。改变设置。