【问题标题】:Access of the data by the server on the server machine服务器访问服务器机器上的数据
【发布时间】:2012-03-15 04:59:41
【问题描述】:

我的问题是我知道服务器应用程序可以访问存储在服务器上的数据,但不能访问存储在客户端计算机上的数据,因为这是一个安全问题,浏览器不允许这样做。但是在 localHost 的情况下(当我的本地电脑充当服务器时)我应该能够从我的电脑(运行应用程序的本地电脑)访问文件。但这并没有发生。 为什么我无法通过 localhost 从本地 C:\ 驱动器访问简单的图像文件。我使用的 URL 是 file:///c:/image.png 但如果我将此图像存储在 tomcat 主目录下的任何位置,我就可以访问它。为什么 ?? 我将它用作 感谢您的任何考虑..

【问题讨论】:

标签: language-agnostic


【解决方案1】:

问题出在这部分:

我使用的 URL 是 file:///c:/image.png 但如果我存储此图像任何 在tomcat的主目录下我可以访问它。

如果你想在将文件放在Tomcat的document-root后通过Tomcat访问文件,那么使用的URL(假设你没有改变默认端口设置)是:

http://localhost:8080/image.png

网络服务器托管的内容需要通过网络服务器访问。 file:// URL 绕过任何类型的服务器,基本上指示浏览器直接查看本地文件系统。因此,如果您要这样做,它也应该起作用:

file:///C:/path/to/tomcat/home/image.png

但在这种情况下,您不会通过 Tomcat。您只是将浏览器指向本地文件系统中的 tomcat 文件夹。

编辑:我不认为许多浏览器不允许在托管文档的标签中使用file:// url。这样做可能会导致出现安全漏洞,就好像您可以猜到某人本地文件系统上的图像文件的名称,然后您可以发布一个网页,使其看起来好像您的服务器以某种方式抓取了他们的个人图像文件。

【讨论】:

  • 非常感谢这个答案,但我的问题是如果文件在本地文件系统中而不是在 tomcat 目录中,为什么我无法使用 file:///c:/image 访问它。 png 正如你所说,这应该去 file:///C:/path/to/tomcat/home/image.png 所以这也应该工作 file:///c:/image.png 但它不是!!!
  • 好的,我修改了我的答案。问题是您将file:// url 放入img 标记中。我不希望这会奏效。
  • 非常感谢您的回答/意见。我很感激。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
  • 2021-07-13
  • 2012-12-11
相关资源
最近更新 更多