webapi下载文件无法打开

智商无下限 2020-03-23 11:19:09
哪位高手给发一个webapi下载文件的函数呗。
我在网上找了各种结果都是下载之后无法打卡,比如如果下载的是execl那么就是 文件已损坏,无法打开,如果是.txt就是乱码,我彻底崩溃了。实在找不到原因。请大家出手相救!!!!
...全文
314 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
智商无下限 2020-03-25
  • 打赏
  • 举报
回复
是被Swagger害的。也是我脑子太死了。 结贴。用浏览器直接好用!!!
正怒月神 版主 2020-03-23
  • 打赏
  • 举报
回复
不能直接给路劲吗? 我记得好像 excel和text的设置不一样。 public ActionResult GetExcel(EL_ExhibitList entity) { return File(fileContents, "application/vnd.ms-excel charset=gb2312;", string.Format("{0}.xls", Guid.NewGuid())); }
  • 打赏
  • 举报
回复
用浏览器直接访问你这个api地址,看看下载的文件, 如果对,就是客户端有问题 如果不对,就是服务端有问题
智商无下限 2020-03-23
  • 打赏
  • 举报
回复
发现个问题,原文件58K,经程序一转手就变成102K了。这个肯定就出错。。。,但是不知道问题出现在哪里
智商无下限 2020-03-23
  • 打赏
  • 举报
回复
我把代码贴出来方便大家给看看

public async Task<HttpResponseMessage> Getxx() 
        {
            try
            {
                string path = @"c:\0.xlsx"; //Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Export\\list.txt");
                if (!string.IsNullOrWhiteSpace(path) && File.Exists(path))
                {

                    string filename = Path.GetFileName(path);
                    var stream = new FileStream(path, FileMode.Open);
                    HttpResponseMessage resp = new HttpResponseMessage(HttpStatusCode.OK)
                    {
                        Content = new StreamContent(stream)
                    };
                    resp.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                    {
                        FileName = filename
                    };
                    resp.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                    resp.Content.Headers.ContentLength = stream.Length;

                    return await Task.FromResult(resp);
                }
            }
            catch (Exception ex)
            {
            }
            return new HttpResponseMessage(HttpStatusCode.NoContent);
        }

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧