在PHP中,可以通过使用正确的标头回显文件来将文件返回到浏览器.您不需要先在服务器上保存它的副本.
因此,假设我有一堆数据,我希望作为excel文件返回 - 在使用OpenXML创建数据结构后,如何将文件提供给用户而不先将其保存在服务器上?
Ant*_*een 11
实际上它非常简单.在您的控制器中,您可以执行以下操作:
public ActionResult GetMyFile()
{
//dynamically generate a file
System.IO.MemoryStream ms;
ms = GenerateFile(); // Some function to return a memorystream object
// return the file
return File(ms.ToArray(), "filename.pdf");
}
Run Code Online (Sandbox Code Playgroud)
将向用户显示一个对话框,询问他们是否要打开文件或保存文件.
您的数据写入到一个流和从控制器的操作方法在返回它FileStreamResult通过设置FileStream,ContentType和FileDownloadName属性.
[HttpGet]
public FileStreamResult MyFile()
{
var fileStreamResult = new FileStreamResult (GetMyContentAsStream(), "my/content-type-here");
fileStreamResult.FileDownloadName = "my-file-download-name.here";
return fileStreamResult ;
}
Run Code Online (Sandbox Code Playgroud)
更新: 执行此操作的捷径是使用Controller.File()方法.
[HttpGet]
public FileStreamResult MyFile()
{
return File(GetMyContentAsStream(), "my/content-type-here");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11695 次 |
| 最近记录: |