Javascript 如何从文件服务器下载文件

Javascript 如何从文件服务器下载文件,javascript,asp.net,download,Javascript,Asp.net,Download,我需要写一个asp.net应用程序在我们的内部网上使用。用户应该能够使用网页从文件服务器下载给定的大型csv文件。使用web应用程序有两个原因-我们希望控制和记录文件加载,而且一些将加载文件的用户使用Mac,因此我无法为他们开发win-form应用程序 我想为我的用户提供一个很好的下载文件按钮,就像Microsoft或Download.CNet在我去那里下载一些软件时所做的那样 当我查找javascript代码示例时,它们都要求我提供完整的目标文件名,但对于Apple计算机,我不知道下载路径是什

我需要写一个asp.net应用程序在我们的内部网上使用。用户应该能够使用网页从文件服务器下载给定的大型csv文件。使用web应用程序有两个原因-我们希望控制和记录文件加载,而且一些将加载文件的用户使用Mac,因此我无法为他们开发win-form应用程序

我想为我的用户提供一个很好的下载文件按钮,就像Microsoft或Download.CNet在我去那里下载一些软件时所做的那样

当我查找javascript代码示例时,它们都要求我提供完整的目标文件名,但对于Apple计算机,我不知道下载路径是什么

我也知道我可以只提供一个下载链接,但我希望将原始文件存储在文件服务器上,而不是网站内,并且在href中指定file://时,我会不断遇到权限问题

有人能解释一下怎么做吗


谢谢。

只需打开一个包含文件服务器url的新窗口即可,具体取决于ftp的配置方式:

window.open('ftp://myServer/catalog/someFile');

这当然不是很优雅,但至少是另一种选择。JavaScript使用http/websocket,因此在引入ftp时很复杂。

在阅读了更多StackOverflow答案后,我喜欢对我有用的答案:

重要的部分是内容类型。 我尝试使用内容类型“文本”,但我需要使用以下内容:

        Response.AddHeader("Content-Disposition", "attachment; filename=" + sourceFileInfo.Name)
        Response.AddHeader("Content-Length", sourceFileInfo.Length.ToString())
        Response.ContentType = "application/octet-stream"

谢谢大家的帮助

可能有比从javascript中保存文件更好的解决方案,因为如果可以将生成的文件保存到字节数组中,只需执行一个响应。清除Response.BinaryWrite,然后完全关闭响应。您需要添加内联的内容配置,以强制下载文件,而不是在浏览器中显示文件。