C# 下载文件时如何设置文件名?
我在做MVC4。我使用以下简单代码动态生成了Excel文件。我的主机在Azure上 我创建了一个根路径,然后尝试保存该Excel文件 问题是当myC# 下载文件时如何设置文件名?,c#,excel,asp.net-mvc-4,azure,C#,Excel,Asp.net Mvc 4,Azure,我在做MVC4。我使用以下简单代码动态生成了Excel文件。我的主机在Azure上 我创建了一个根路径,然后尝试保存该Excel文件 问题是当myActionResultmethod响应返回时,它给出了打开文件的默认弹出窗口,但文件名有一个GUID,而不是我提供的文件名 Excel文件生成代码: Microsoft.Office.Interop.Excel.Application xlApp= 新的Microsoft.Office.Interop.Excel.Application() temp
ActionResult
method响应返回时,它给出了打开文件的默认弹出窗口,但文件名有一个GUID,而不是我提供的文件名
Excel文件生成代码:
Microsoft.Office.Interop.Excel.Application xlApp=
新的Microsoft.Office.Interop.Excel.Application()
tempPath返回的路径类似于C:\AppData\Local\dftmp\Resources\11a2435c-998c-4fe8-aa55-8bb42455b4ca\directory\DemoFile.xls
下载文件弹出窗口没有提供文件名为DemoFile
它提供一些GUID
为什么
ActionResult
方法代码:
public ActionResult DownloadExcel() {
string path = ExcelGenerationCode(fileName);
Stream s = new FileStream(path, FileMode.Open, FileAccess.Read);
return new FileStreamResult(s, "application/vnd.ms-excel");
}
还试图给属性命名
public ActionResult DownloadExcel() {
string path = ExcelGenerationCode(fileName);
Stream s = new FileStream(path, FileMode.Open, FileAccess.Read);
return new FileStreamResult(s, "application/vnd.ms-excel")
{
FileDownloadName = "myexcelFILE1.xls"
};
}
给出文件名参数时出现以下错误。
我有足够的空间和内存。您应该返回一个新的FileContentResult,并且您的操作必须返回FileResult而不是ActionResult,例如:
public virtual FileResult DownloadFile(long fileId)
{
string path = ExcelGenerationCode(fileName);
return File(path, "application/vnd.ms-excel","donwload.xls");
}
显示用于下载文件的操作方法代码。编辑后:无法设置
FileStreamResult
的文件名,请使用。但是你不需要手动实例化一个流,在内部也是这样,所以你需要使用更少的代码。我更新了我的答案。它正在工作吗?请尝试搜索错误。请参阅。在运行此代码之前杀死任务管理器中的所有Excel实例时,是否也会发生这种情况?更新了上述问题中的myActionResult
代码请选中“您的操作必须是FileResult”-不正确,FileResult
继承ActionResult
,因此后者也可以工作。工作正常,但在打开“microsoft excel无法打开或保存更多文档,因为没有足够的可用内存”时出现此错误/问题是我已经在path变量中传递了文件名,那么为什么它不取我的文件名:/
public virtual FileResult DownloadFile(long fileId)
{
string path = ExcelGenerationCode(fileName);
return File(path, "application/vnd.ms-excel","donwload.xls");
}