我正在尝试将Excel(.xlsx)文件保存在发送到Web服务的磁盘中。我使用的代码如下,但是当我点击保存的文件时,它返回一个"文件已损坏,无法打开"错误。但是相同的方法适用于CSV文件。
string dataFile = await Request.Content.ReadAsStringAsync();
byte[] byteArray = Encoding.UTF8.GetBytes(dataFile);
MemoryStream stream_ = new MemoryStream(byteArray);
MultipartParser.MultipartParser mp = new MultipartParser.MultipartParser(stream_);
// Save Excel file
File.WriteAllBytes(@"C:\temp\output.xlsx", mp.FileContents);
答案 0 :(得分:0)
以下工作,
string root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
try
{
string fileName = "";
string fileLocalName = "";
var result = await Request.Content.ReadAsMultipartAsync(provider);
foreach (MultipartFileData file in provider.FileData)
{
fileLocalName = file.LocalFileName;
}
File.WriteAllBytes(@"C:\temp\output.xlsx", File.ReadAllBytes(fileLocalName));
}
感谢你的帮助,Ben Robinson,Daniel A. White,Ali Sepehri.Kh和Faisal Hafeez的帮助