- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的 MVC C# 应用程序中有以下代码:
return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "PSL.xlsx");
从流中返回 PSL 文件。我正在尝试在我的 Web 窗体代码中做同样的事情:
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("Content-Disposition", "attachment; filename=PSL.xlsx");
Response.BinaryWrite(stream.ToArray());
// myMemoryStream.WriteTo(Response.OutputStream); //works too
Response.Flush();
Response.Close();
Response.End();
想知道这是否是正确的方法,因为我收到以下错误消息:
Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.}
最佳答案
该错误是由调用 Response.End();
时抛出的 ThreadAbortException
引起的。看看这个 question .
基于您有 Response.End();
调用这一事实,我假设您包含的代码正在 ASPX
页面的事件中运行。正确吗?
如果是这样,我建议您将加载文件的代码移到ASPX
页面并将其提供给客户端,移到通用处理程序
中。通用处理程序具有 ASHX
文件扩展名。它非常简单——它只有一种方法和一个您需要实现的属性。最主要的是 ProcessRequest
方法。来自名为 ServeFile.ashx
的处理程序的示例:
public class ServeFile : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
byte[] fileBytes = File.ReadAllBytes("c:\\path\\to\\folder\\with\\files\\" + context.Request.QueryString["fileName"]);
context.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
context.Response.AddHeader("Content-Disposition", "attachment; filename=PSL.xlsx");
context.Response.BinaryWrite(fileBytes);
}
public bool IsReusable
{
get
{
return false;
}
}
}
构建处理程序后,您可以更改 aspx 页面以显示指向处理程序的链接,该链接在 QueryString
中具有合适的标识符,处理程序用于加载和提供正确的文件。在示例中,文件是从文件系统中读取的,但您当然可以从数据库中加载它,也可以通过其他方式获取它。
关于c# - 返回 Web 窗体中等效的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41386977/
对于一个科学实验,我写了一个turtle.py ,它会打开一个 800x480 的窗口并绘制一个缓慢增长的黑点。 turtle.py以 C:\Users\kaza>python C:\Users\ka
我开发了一个 swing 应用程序,但每次运行应用程序时都会打开一个新窗口。我希望如果一个窗口已经打开,则其他窗口不允许打开。 最佳答案 Here是一个 Java 单一应用实例的例子: A singl
有没有办法检测主进程中 Electron 的结构? process.platform 似乎也在 x64 机器上返回 win32,我没有在文档中找到任何获取架构的选项。 最佳答案 你试过 process
public short[] HanningWindow(short[] signal_in ,int pos ,int size) { for (int i= pos; i < pos+si
我有一个具有这些属性的 Electron 窗口: mainWindow = new BrowserWindow({ width: 800, height: 600, title: "Aqu
我有一个 Ubuntu 工作站,我正在尝试引导一个 Windows 节点。 Windows 节点在端口 2222 上打开了 ssh。我一直在关注 http://docs.opscode.com/plu
我是一名优秀的程序员,十分优秀!