使用javascript下载服务器中的文件

时间:2012-12-13 11:06:14

标签: javascript asp.net ftp download

我有一个ASP.NET Web应用程序。在某些步骤中,我创建一个文本文件并将其存储在服务器上的文件夹中。我在服务器代码上执行此操作。但是在完成创建文件之后,我想将该文件下载到客户端计算机。这甚至可能吗?我知道John Culviner的jquery filedownload插件。但在审核之后,我了解到要下载的文件必须位于网站本身所在的目录中 - 例如www.mywebsite.com/downloads/text1.txt。但是我想把创建的文件放到其他目录中。我觉得ftp会在这里发挥作用,但不知道如何。你能指点一下吗。

2 个答案:

答案 0 :(得分:1)

您无法从javascript启动FTP会话,但您可以创建一个页面来下载此文件并发出正确的标题,让浏览器知道该文件应该下载而不是显示。然后在你的javascript中只是将页面重定向到这个下载URL并且文件将被下载,但是它不会改变页面视图,而只会在浏览器中触发下载对话框。

标题至少应包含附件的内容处理:

Response.AddHeader("content-disposition:", "attachment;filename=...")

答案 1 :(得分:1)

您需要的是在后端代码而不是javascript中使用Response.TransmitFile方法。

 Dim FileLocation As String = "C:/File.csv"
            Response.ContentType = "application/csv"
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + FileLocation )
            Response.TransmitFile(FileLocation )
            Response.End()

因此,一旦您创建了文件,只需使用该代码,您将自动(它将询问他们是否显然)在客户端计算机上启动该文件的文件下载。