1

我正在使用这种方法从我的 aspx 页面上的某个地方下载一个文件,名为:downloader.aspx

byte[] virtualPath = client.DownloadData(link/file.doc);
Response.BinaryWrite(virtualPath);

但是,当客户端显示下载时它告诉我:“你想downloader.doc从 mywebsite.com 下载吗?它不显示原始名称。

有没有办法使用原始名称(file.doc)而不是 aspx 页面的名称?

4

2 回答 2

3

使用响应头Content-Disposition设置文件名。

byte[] virtualPath = client.DownloadData(link/file.doc);
Response.AppendHeader("Content-Disposition", "attachment;filename=file.doc");
Response.BinaryWrite(virtualPath);
于 2012-11-06T09:36:30.920 回答
2

您可以使用 http 响应标头字段内容配置。请参阅https://stackoverflow.com/tags/content-disposition/info

尝试以下

byte[] virtualPath = client.DownloadData(link/file.doc);
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename=" +"file.doc");
Response.BinaryWrite(virtualPath);
Response.End();
于 2012-11-06T09:36:33.667 回答