gpt4 book ai didi

通过 web api 下载 Excel 文件。变得腐败

转载 作者:行者123 更新时间:2023-12-03 17:18:14 25 4
gpt4 key购买 nike

我正在尝试通过 Web API(使用 Entity Framework )下载一个 excel 文件。下载正在运行,但在尝试打开文件时出现有关文件损坏的错误对话框。

Web API 代码如下:

  public HttpResponseMessage GetValue(int ID, string name)
{

MemoryStream stream;
try {
using (DataContext db = new DataContext()) {
dynamic fileObj = (from c in db.FileList c.ID == IDc).ToList();
stream = new MemoryStream(fileObj(0).File);
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType = new MediaTypeHeaderValue(fileObj(0).FileContentType);
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = name };
return result;
}
} catch (Exception ex) {
return Request.CreateResponse(HttpStatusCode.InternalServerError);
}
}

它打开带有两个错误对话框和以下消息的文件。

Excel 完成了文件级别的验证和修复。本工作簿的某些部分可能已被修复或丢弃

enter image description here

enter image description here

最佳答案

试图解决同样的问题。我比较了 2 个 epplus 版本:4.5.3.3 和 5.2.1。后一个包含用于在 GetAsByteArray 过程中关闭流的代码。所以,我只是将这些行添加到 4.5.3.3 版本中,它就像一个魅力。看起来该流最初包含一些垃圾片段,必须在将文件数据泵入该流之前将其删除。
使用 NetCore 3.1 Web 应用程序测试。希望它能解决您的问题。

if (save)
{
Workbook.Save();
_package.Close();

/* start of added code */
if (_stream is MemoryStream && _stream.Length > 0)
{
CloseStream();
}
/* end of added code */

_package.Save(_stream);
}

关于通过 web api 下载 Excel 文件。变得腐败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30925334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com