可以在类库中下载包含代码的文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可以在类库中下载包含代码的文件相关的知识,希望对你有一定的参考价值。
我有一个C#类库项目,它继承了第三方解决方案,然后我实现了他们提供的方法。
一切都按预期工作,但我想要完成的一项任务是下载文件。我使用了以下代码,我在项目中输入了一个类:
string fp = "C:CompletePathFile.pdf";
FileInfo fi= new FileInfo(fp);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ClearHeaders();
System.Web.HttpContext.Current.Response.ClearContent();
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=test.pdf");
System.Web.HttpContext.Current.Response.AddHeader("Content-Length", fi.Length.ToString());
System.Web.HttpContext.Current.Response.ContentType = "application/pdf";
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.TransmitFile(fi.FullName);
System.Web.HttpContext.Current.Response.End();
- 所以该文件存在(我可以得到它)。
- 我已经完成了代码,没有错误。
- 上面的代码适用于页面(Asp .Net页面)。
- 在Chrome中,文件开始下载,然后我收到“失败 - 网络错误”。
- 在边缘 - 无法找到页面。
当代码驻留在类库中时,是否还有其他方法可以触发文件下载?
编辑1(提琴手)
HTTP / 1.1 504 Fiddler - 接收失败日期:星期二,2018年1月2日16:35:40 GMT内容类型:text / html; charset = UTF-8连接:关闭Cache-Control:no-cache,must-revalidate时间戳:16:35:40.226
[Fiddler] ReadResponse()失败:服务器没有为此请求返回完整的响应。服务器返回408个字节。
编辑2
System.Web.HttpContext.Current.Response.ContentType = "application/pdf";
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.Buffer = false;
System.Web.HttpContext.Current.Response.TransmitFile(fi.FullName);
//System.Web.HttpContext.Current.Response.End();
System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();
答案
您可以在配置文件中设置maxRequestLength
(以kb为单位)。
<system.web>
<httpRuntime maxRequestLength="1500000" />
</system.web>
希望有所帮助
要么
尝试使用Buffer = false
设置HttpContext.Current.ApplicationInstance.CompleteRequest();
和End请求,除非Response.End();
System.Web.HttpContext.Current.Response.Buffer = false;
System.Web.HttpContext.Current.Response.TransmitFile(fi.FullName);
//System.Web.HttpContext.Current.Response.End();
System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();
让我们知道你的尝试
以上是关于可以在类库中下载包含代码的文件的主要内容,如果未能解决你的问题,请参考以下文章