您好,我需要编写一个下载功能,这样当我网站的用户单击一个按钮时,文件就会下载到那里的 PC。
如果我将此用作链接,则将下载该文件:
http://formvalue.co.za/download/" + fileName + ".xlsx"
但是在那之后我不能做任何事情,所以我需要在一个函数中使用它,这样我就可以在下载文件后从我的服务器上删除它。
我正在使用 MVC,所以该函数可以在 Jquery 或 C# 中。
谁能帮忙,如果需要任何信息,请提前询问,谢谢。
你能简单地使用一个返回服务器并调用以下方法的 LinkButton 吗?
internal static void ContentToBrowser(string contentType, string filename, string content)
// Send to browser
var response = HttpContext.Current.Response;
response.Clear();
response.ContentType = contentType;
response.AddHeader("Content-Disposition",
String.Format("attachment; filename=\"{0}\"", filename));
var contentLength = response.ContentEncoding.GetByteCount(content);
response.AddHeader("Content-Length", contentLength.ToString());
response.Write(content);
response.End();
}
这允许您将所需的内容直接写回客户端,而无需担心存储在服务器上。例如
protected void LinkButtonClick(object sender, EventArgs e)
{
string filename = @"c:\filepath\blah.xlsx";
string content = File.ReadAllText(filename);
ContentToBrowser("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "downloaded-blah.xlsx", content);
File.Delete(filename);
}
但是,我不得不质疑您之后删除文件的动机。你怎么知道它已经被客户端成功下载和存储了?