【问题标题】:download file from html page not working [duplicate]从html页面下载文件不起作用[重复]
【发布时间】:2016-01-21 19:50:49
【问题描述】:

我在 Jboss 7 上上传了新应用。

除其他外,该应用程序可以创建文件、保存文件并使用html5 标签下载。 生成后,文件保存在我从中获取的绝对路径上 getServletContext().getRealPath("/");

通过服务器日志,我可以看出这些操作非常完美。 文件已创建并保存。 问题出在下载部分。

我正在尝试下载带有 html5 标签的文件。 <a href=path+file name> download>Get Numbers!</a>

我使用的路径与我在服务器上保存文件时使用的路径完全相同,并且不断收到来自 Chrome 的 fail-no file 错误。

想法?

【问题讨论】:

  • 为该链接生成的实际 URL 是什么?服务器对请求的响应是什么?
  • 保存文件的路径是"/opt/repo/versions/7.1/standalone/tmp/vfs/tempc56e386fb58c08a8/SlL.war-269016b5c31c942c/serial.xls,该链接的Url是获取号码!
  • 您的网站这条路径吗?这看起来更像是文件系统路径...
  • 它有。如果没有,我会在保存文件时得到“java.io.FileNotFoundException: (No such file or directory)”
  • 您不会在 Web 服务器上收到 FileNotFoundException 的 404 错误。我认为您将网站 URL 与文件系统路径混淆了。它们是非常不同的东西。

标签: java html servlets jboss


【解决方案1】:

我使用的路径与我在服务器上保存文件的路径完全相同

有问题。你的文件路径是这样的:

/opt/repo/versions/7.1/standalone/tmp/vfs/tempc56e386fb58c08a8/SlL.war-269‌​016b5c31c942c/serial.xls

从文件系统获取文件时,在服务器上很好。但这条路径对网络浏览器毫无意义。 Web 浏览器正在向 Web 服务器发出请求,以获取 Web 服务器已知的文件

因此,例如,如果您的 Web 服务器根目录在这里:

/opt/mywebserver

然后该路径最终请求此:

/opt/webserver/opt/repo/versions/7.1/standalone/tmp/vfs/tempc56e386fb58c08a8/SlL.war-269‌​016b5c31c942c/serial.xls

该文件不存在,因此 Web 服务器响应 404 错误。

您需要将 文件系统 路径转换为 ​​URL 以便在标记中使用它。 (并且该路径需要在其自己的路径结构中对 Web 服务器公开可见。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2012-06-04
    • 1970-01-01
    • 2018-09-27
    • 2014-08-10
    相关资源
    最近更新 更多