从链接下载文件

时间:2012-07-19 14:52:15

标签: c# asp.net download

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

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

谢谢

3 个答案:

答案 0 :(得分:4)

“文件本身位于另一台服务器上”听起来好像它可能没有发布到网络上,因此没有网址。因此,在这种情况下,简单的锚标记将不起作用。我想你正在寻找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();

答案 1 :(得分:3)

你可以这样做,

<a href="http://www.yoursite.com/folders/yourfile.pdf"  target="_blank" > click to download file </a>

答案 2 :(得分: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