【问题标题】:How to download file from a file server如何从文件服务器下载文件
【发布时间】:2014-11-06 22:18:00
【问题描述】:

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

我想为我的用户提供一个漂亮的“下载文件”按钮,就像我去那里下载一些软件时那样,就像 Microsoft 或 DownLoad.C​​Net 所做的那样。

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

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

谁能解释一下如何做到这一点?

谢谢。

【问题讨论】:

  • 可能有比从 javascript 中处理文件保存更好的解决方案,因为如果您可以将生成的文件保存到字节数组中,您可以简单地执行 Response.Clear() 然后 @987654322 @ 并在此之后完全关闭响应。您需要添加内联的内容处置以强制文件下载,而不是在浏览器中显示。

标签: javascript asp.net download


【解决方案1】:

可能只使用文件服务器 url 打开一个新窗口,这取决于您如何配置 ftp 内容:

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

这当然不是很优雅,但至少是另一种选择。 JavaScript使用http/websocket,所以引入ftp的时候比较复杂。

【讨论】:

    【解决方案2】:

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

    How to implement a file download in asp.net

    重要的部分是内容类型。 我试图使用内容类型“文本”,而我需要使用这个:

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

    感谢大家的帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 2019-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多