3 回答
TA贡献1834条经验 获得超8个赞
您的 src 不应是服务器中文件的位置,源应该是将为您的资源提供服务的 http 链接。
您可以将 apache 配置为将 URL 映射到特定目录中的资源,然后在 src 属性中提及映射的 URL + 文件名
或者您可以创建一个控制器,它从特定位置获取资源并将其作为字节流返回,并在 src 属性中设置指向您的控制器的链接+文件名
TA贡献1839条经验 获得超15个赞
我终于设法显示图像。如果有其他人试图做同样的事情,我想列出我采取的步骤。仅供参考,我使用的是 Tomcat 和 MySQL 数据库。
确保您的图像目录存在于您的系统上并向其中添加图像。
创建一个名为的新类
FileServlet
并将以下代码应用到其中。
@WebServlet("/images/*")
public class FileServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException
{
String filename = URLDecoder.decode(request.getPathInfo().substring(1), "UTF-8");
File file = new File("C:\\your\\local\\image\\directory", filename);
response.setHeader("Content-Type", getServletContext().getMimeType(filename));
response.setHeader("Content-Length", String.valueOf(file.length()));
response.setHeader("Content-Disposition", "inline; filename=\"" + file.getName() + "\"");
Files.copy(file.toPath(), response.getOutputStream());
}
}
现在转到您的主类并应用一个名为@ServletComponentScan. 你的主类现在应该是这样的:
@SpringBootApplication
@ServletComponentScan
public class WebApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(WebApplication.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(WebApplication.class, args);
}
}
在您的 .jsp 文件中,将此行添加到您想要显示图像的任何位置:
<img src="http://localhost:8080/images${YOUR_PASSED_OBJECT.RELATIVE_IMG_PATH_VARIABLE}">
重建您的 Web 应用程序并转到localhost:PORT/images/YOUR_FILE_NAME.EXTENSION
如果您有任何问题,请随时对此答案发表评论,我会根据需要进行更新。
TA贡献1830条经验 获得超9个赞
假设您有 Apache tomcat 服务器。您将必须更新 server.xml 文件。添加
<Context docBase="C:\your\physical\path" path="/path/for/http/url" />
里面的<Host></Host>
标签。这样做,您可以访问保存在其中的任何文件
“C:\你的\物理\路径”
在 URL 的帮助下从您的 Web 应用程序:
“ http://yourdomain/ path/for/http/url /somefile.someextension”
添加回答
举报