【问题标题】:Is there a better a way to send files to client in asp.net?有没有更好的方法在 asp.net 中向客户端发送文件?
【发布时间】:2019-04-15 09:35:13
【问题描述】:

我需要向客户端发送文件以使用 javscript 下载,我找到了以下方法:

Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment; filename="myflie.txt");
Response.ContentType = "text/plain";
Response.Flush();
Response.TransmitFile(filePath);
Response.End();

但是我无法获取文件名,因为这似乎返回了一个原始文件并且调用 getResponseHeader 不起作用。我也无法下载文件本身,因为有一个错误Resource 'blob: …' not allowed to load。此外,除了文件名之外,我还想将其他一些参数作为 JSON 传递,但我无法使用这种方法来做到这一点。我是 asp.net 的初学者,所以我希望我足够清楚。

【问题讨论】:

标签: c# asp.net asp.net-mvc-4


【解决方案1】:

您已标记为使用 MVC,如果是这样,您真的不想直接弄乱响应...您可以使用 File() 方法:

https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.controller.file?view=aspnet-mvc-5.2

或者查看其中一些替代方法以允许更改某些元数据:

Returning a file to View/Download in ASP.NET MVC

如果您想下载文件发送 json,您将需要使用 multipart,尽管我会避免这样做并设置两个不同的操作,因为这种方式更兼容

【讨论】:

    猜你喜欢
    • 2011-12-21
    • 1970-01-01
    • 2011-02-23
    • 2021-08-10
    • 2014-08-17
    • 2012-10-27
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多