【发布时间】:2015-06-02 09:21:12
【问题描述】:
更新:
我使用.net 4.0进行编码,我想找到一个具有特定路径(ViewState[“MediaFile”])的pdf文件并将其传输到本地系统。
这是我的文件传输代码:
//---server path ---
String sFilePath = Server.MapPath("~/" + ViewState["MediaFile"].ToString());
String sFileName= System.IO.Path.GetFileName(sFilePath);
String RelativePath =sFilePath.Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty);
HttpContext.Current.Response.ContentType = "APPLICATION/OCTET-STREAM";
String Header = "Attachment; Filename=" + sFileName;
HttpContext.Current.Response.AppendHeader("Content-Disposition", Header);
System.IO.FileInfo Dfile = new System.IO.FileInfo(RelativePath);
HttpContext.Current.Response.End();
但运行后,出现错误:
无法评估表达式,因为代码已优化或本机框架位于调用堆栈顶部。
当我把 HttpContext.Current.ApplicationInstance.CompleteRequest() 而不是 HttpContext.Current.Response.End() 这不是错误但什么都不做!!!我的意思是没有显示下载面板。
注意:我在另一个页面上测试了这段代码,它可以工作。只是想说这可能是因为我的表单中有任何代码吗?我使用 Ajax UpdatePanel 并禁用右键单击表单。
【问题讨论】:
标签: c# asp.net httpresponse file-transfer httpcontext