问题描述
我正在 ASP.NET Core MVC 站点的 Hangfire 后台作业中生成一个 Excel 文件。
我在从我的网站正确下载 excel 文件时遇到了一些问题。当我尝试在本地主机上运行时下载该文件时,它完全正常。代码发布后,我尝试在实时版本上使用该功能,但无法下载文件。
string previewName = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\" + content + " - " + Guid.NewGuid() + ".xlsx";
File.copy(sourceFileName,previewName);
我最初写了这个,以为我可以将文件下载到客户的“我的文档”文件夹中。我了解到情况并非如此,因为 Environment.GetFolderpath 获取服务器计算机而不是客户端的文件夹路径。由于文件托管在服务器上,我如何将该文件下载到客户端的计算机上?
解决方法
尝试使用 WebClient 从站点下载文件。
using System.Net;
string URL = "https://server.com/files/file.txt";
var FilePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\" + content + " - " + Guid.NewGuid() + ".xlsx");
WebClient Client = new WebClient();
Client.DownloadFile(URL,FilePath);
,
如果它是您谈论的控制器而不是复制您可以通过返回控制器中的文件直接下载
return File(yourFilePath);
或者您可以将文件作为字节读取然后返回
bytes[] bytesFile = File.ReadAllBytes(path);
return File(bytesFile);