当前位置: 首页 > 面试题库 >

在JSP中上传和显示图像

涂玉韵
2023-03-14
问题内容

我已经从这里学到并成功实现了如何使用servlet将图像上传到服务器磁盘上,现在尝试通过userProfile.jsp以下代码在另一个jsp上显示图像:

<img src="<jsp:include page='WEB-INF/jspf/profileImage.jspf' />" height="175" width="175" />

的代码profileImage.jspf如下:

OutputStream o = response.getOutputStream();
InputStream is = new FileInputStream(new File("../files/backPetals.jpg"));
byte[] buf = new byte[32 * 1024]; 
int nRead = 0;
while( (nRead=is.read(buf)) != -1 ) {
    o.write(buf, 0, nRead);
}
o.flush();
o.close();
return;

但是它不起作用。还有其他方法可以显示jsp上磁盘上的图像以及页面上的其他内容吗?我已将图像保存/files在应用程序根文件夹的目录中。


问题答案:

该方法存在几个严重错误:

  1. 您不应将上载的文件存储在应用程序根文件夹中。每当您重新部署WAR时,它们都将丢失(这是因为这些文件未包含在原始WAR文件中)。

  2. <img src>不应该包含原始图像内容,但它应该包含返回文件内容的URL。例如

    <img src="profilePictures/${user.profilePictureFilename}" />
    
  3. 您不应使用JSP将二进制数据写入响应。请改用servlet。或者,如果可以的话,只需将上传文件的路径添加为另一个webapp上下文。



 类似资料:
  • 我创建了一个动态web项目,以便通过Servlet显示JSP(我不能使用任何类似Spring的框架…)。默认情况下,我构建的类放在Build/classes中,因此在我将输出文件夹更改为WebContent/WEB-INF/classes后,我的应用程序运行良好。之后,我将该项目转换为Maven项目。(我不记得我上次使用servlet/JSP时需要更改输出文件夹,那是3年前!)。 无论如何,现在我

  • 我正在使用JavaFX,在那里我编写了一个包含的代码,通过我想在我的场景上显示图像,但它不起作用。图像不显示。 当我使用它还显示一个错误。虽然我70%的编码已经完成,但我只是坚持在现场显示图像(不上传)。 以下是我正在使用的代码: 所以,我需要的是通过单击按钮并选择图像来显示我的场景中的图像。

  • 我已经尝试通过 和 这个问题是因为我放置图像的位置层次结构吗?

  • 我正在尝试为Vaadin使用EasyUploads插件,但无法显示图像。 当我点击插件的“选择文件”按钮时,它会要求我打开一个文件。我从我的图片中选择了一些.png文件,插件显示了它下面图片的信息。 然后我按下我的“上传”按钮,这是目前需要的,只是为了首先显示上传的图像。 upload=EasyUpload用于选择文件的组件 图像=我与设计师一起绘制到布局中的嵌入组件。 但当我用浏览器查看页面时,

  • 本文向大家介绍JSP中图片的上传与显示方法实例详解,包括了JSP中图片的上传与显示方法实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JSP中图片的上传与显示方法。分享给大家供大家参考。具体如下: 1、引言 数据库应用程序,特别是基于WEB的数据库应用程序,常会涉及到图片信息的存储和显示。通常我们使用的方法是将所要显示的图片存在特定的目录下,在数据库中保存相应的图片的名称,在JSP

  • 我已经写了一个jsp页面来显示pdf的内容,但是最终在jsp中使用了ascii代码。我想在jsp中显示pdf的内容。我错过了什么部分。当我试图在pdf中写入读取的内容时,它只显示ascii值,而不是可读的格式

  • 在标记的src中传递的图像路径有一些问题。 在我的数据库中,我有用户图像的Linux绝对路径。我得到这个值并放入“src”属性中。 我有一个路径,例如: null 我需要知道的是我要做什么? 我必须改变Jetty的配置吗?我必须用Java运行一些代码吗? 通过谷歌搜索,我变得更加困惑。我想要个解释。 谢谢你,巴卢斯!豪豪乌豪阿

  • 通过本案例,我们实现blobImage上传的图片在grid表格中的显示。 grid的cellRender方法渲染单元格显示图片,例: Model.prototype.personGridCellRender = function(event){ if(event.colName == "sPhoto"){ var url = biz.Request.setBizPar