gpt4 book ai didi

java - 显示来自 java 应用程序上下文外部的图像。

转载 作者:行者123 更新时间:2023-12-01 15:25:50 25 4
gpt4 key购买 nike

这是一个关于在 Windows 7 平台上使用本地 java 服务器测试文件上传功能的问题。由于这个问题是随着 Marko 的输入而演变的,所以我对其进行了编辑,以便那些遇到同样挑战的人不会在演变细节上浪费时间并更快地得出结论。

挑战是将上传的文件定向到 WAR 结构之外的文件夹并从那里成功读取它。例如:上传图片到c:/tmp/然后重定向到显示图像 <img src="c:/tmp/test.jpg" /> 的确认页面。上传成功,但图像无法显示。根据 Marko 的输入,这是有道理的,因为位于本地主机的浏览器将拒绝使用 c: 从本地磁盘结构加载任何内容。 。也许这些是类似于文件输入控制的安全考虑,我们无法设置默认路径...

以下标记将在本地创建的 .html 文件中起作用,但粘贴到 jsp 中时将不起作用。不同之处在于浏览器使用 localhost 来访问 jsp。

<img src="c:/tmp/test.jpg" />

解决方案

我认为马科的回答几乎定义了需要做什么。虽然我没有采用这种方法,但这显然是更好的方法,我会接受它作为答案。谢谢,马可!

对于那些不想费心安装 Web 服务器并愿意接受一些黑客攻击的人,这就是我所做的。同样,我不想将文件上传到我的 WAR 结构中,因为这样我需要记住在部署到服务器之前清除该文件夹。但该上传文件夹仍然需要可访问,因此我只是创建了另一个虚拟项目并将该上传文件夹放在其 WebContent 下。这适用于我的本地测试。唯一的麻烦是上传文件后,我需要在 Eclipse 中刷新虚拟项目的 WebContent。

config.properties

#for uploading files
fileUploadDirectory=C:/javawork/modelsite/tmp/WebContent

#for building html links
publicFileServicePrefix=http://localhost:8080/tmp

<img src="http://localhost:8080/tmp/test.jpg" /> // this works - tmp is the name of my dummy project.

最佳答案

如果您逐字引用进入浏览器的 HTML(您通过“查看源代码”访问的 HTML),那么这与 Java 无关。浏览器是解释这些链接的人。如果它们无法加载,则问题出在浏览器/文件系统中。

更新

根据您的附加诊断结果,我得出的结论是,如果从来自 Internet URL 的 HTML 文件引用浏览器(明智地!),则拒绝从本地磁盘加载任何内容,即使该 URL 是 本地主机

更新2

(已删除,无关)

更新3

无论您如何处理上传到服务器的文件,它绝对不会像您的解决方案那样 - 文件位于服务器的本地文件系统上,而不是客户端的文件系统上。这类事情可以在 Apache HTTP 服务器级别处理——为静态内容保留 URL 部分,并使用一个基本目录来配置 Apache,以从中提供静态内容。即使您在本地运行服务器,在测试它的同一台机器上,您仍然需要通过网络接口(interface)。

关于java - 显示来自 java 应用程序上下文外部的图像。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10156122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com