5

我有一个使用 C# 的网页,我希望用户能够单击链接(或链接按钮或按钮,我不挑剔)并出现“另存为”对话框窗口,以便他们可以下载文件。该文件本身位于另一台服务器上,因此我必须使用绝对路径(i:\division\department\publicfiles\filename.pot)。有谁知道这是怎么做到的吗?

我在这里查找了问题,有人建议使用 webClient.DownloadFile。除非我不能使用它,因为它要求您已经知道用户希望将文件下载到他们计算机上的哪个位置。基本上我正在寻找的是当您右键单击链接并选择“另存为”时会发生什么,但是当您左键单击链接时会完成。

谢谢

4

3 回答 3

4

“文件本身位于另一台服务器上”对我来说听起来好像它可能没有发布到网络上,因此没有 URL。因此,在这种情况下,简单的锚标记将不起作用。我想你正在寻找Response.TransmitFile().

当他们单击链接时,您需要发送文件并明确设置内容类型和内容处置标头。将 content-disposition 标头设置为attachment将弹出另存为对话框。喜欢(未经测试):

Response.ContentType = "application/x-pot";    
Response.AppendHeader("Content-Disposition","attachment; filename=filename.pot");    
Response.TransmitFile(@"i:\division\department\publicfiles\filename.pot");    
Response.End();
于 2012-07-19T15:00:03.823 回答
3

你可以这样做,

<a href="http://www.yoursite.com/folders/yourfile.pdf"  target="_blank" > click to download file </a>
于 2012-07-19T14:56:31.250 回答
0

使用 HTML5,您可以只使用download锚标记中的新属性。

代码看起来像

<a download href="path/to/the/download/file"> Clicking on this link will force download the file</a>

它适用于 Firefox 和 chrome 最新版本。我应该提到我没有在 IE 中检查它吗?:P

于 2013-08-20T08:21:58.800 回答