我需要从服务器下载文件。它的代码如下所示:
public void ProcessRequest(HttpContext context)
{
string fileName = context.Request.QueryString["fileName"];
string filePath = HostingEnvironment.ApplicationPhysicalPath + "/TempFolder/" + fileName;
if (File.Exists(filePath))
{
context.Response.ContentType = "application/octet-stream";
context.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
using (FileStream fileStream = new FileStream(filePath, FileMode.Open))
{
int _READ_LEN = 3000;
int bLength = _READ_LEN;
BinaryReader bReader = new BinaryReader(fileStream);
if (bReader.BaseStream.Length < _READ_LEN)
bLength = (int)bReader.BaseStream.Length;
while (bReader.BaseStream.Position != bReader.BaseStream.Length)
{
context.Response.BinaryWrite(bReader.ReadBytes(bLength));
if ((bReader.BaseStream.Length - bReader.BaseStream.Position) < _READ_LEN)
bLength = (int)(bReader.BaseStream.Length - bReader.BaseStream.Position);
}
}
context.Response.Flush();
File.Delete(filePath);
}
}
当我尝试在Mozilla中下载文件时,它会自动下载文件而不要求打开/下载文件,而在IE中工作时会显示此选项。 我需要在Mozilla中显示此选项。 我试图搜索这些东西,但找不到任何有用的东西。 有人可以建议一个解决方案吗?
答案 0 :(得分:0)
如果Mozilla Firefox自动下载文件而不询问目的地,则很可能配置为以这种方式工作。查看Mozilla Firefox Help了解详情。
答案 1 :(得分:0)
Afaik这是与浏览器相关的行为(浏览器设置包括处理不同文件类型的方法)。
如果您希望采用与浏览器无关的方式来处理此问题,我建议使用例如一个模态弹出框,提示用户选择。根据答案,您可以构造一个可以在文件处理程序中处理的查询字符串。