【问题标题】:Insert image into jsp page将图片插入jsp页面
【发布时间】:2017-05-31 15:27:32
【问题描述】:

很抱歉我需要问这个问题,但我已经花了三天时间尝试这样做。我正在构建 Java Web 应用程序,我想在 JSP 页面中包含图像。项目名称是房地产,我在房地产文件夹中有 Files 文件夹。

我的代码是这样的:

<img alt="govno" src="<%=request.getContextPath() + "/Files/kurac.jpg"%>" style="width: 400px; height: 300px;">

这是我在浏览器中打开后在页面上生成的内容:

<img alt="govno" src="/realestates/Files/kurac.jpg" style="width: 400px; height: 300px;">

但是,没有显示图像,只写了 alt“govno”。我尝试了许多路径(相对的、绝对的、更改了数百万次的文件夹结构以及我能想到和在互联网上找到的任何东西,但没有任何帮助)。谁会说这样的事情会这么难做???

部署后Tomcat服务器上的文件夹结构为:

webapps
 - realestates
   |- WEB-INF
   |- Files
     |- kurac.jpg

【问题讨论】:

  • 不知道任何细节,无法提供帮助。如果从浏览器中输入相同的路径,会发生什么?显而易见的答案是图像不在您认为的位置。
  • 我可以在浏览器中打开它但是我需要输入绝对路径 file:///C://Users//Lazar//Documents//workspace-sts-3.8.3.RELEASE// realestates//Files//kurac.jpg,但正如我在浏览器中的问题中所写,我得到 src="/realestates/Files/kurac.jpg"。这样可以吗?
  • 我更新了我的问题。我读到文件路径不能在操作系统文件系统的某个地方,它必须在服务器的某个地方。在我什至没有将图像部署到服务器之前。我试图将它从服务器引用到文件系统的某个位置。
  • 首先,您使用了错误的文件名。其次,根据您的部署方式,它可能只是“Files/_kurac.jpg”。
  • 感谢回复,但文件名没有“_”。这个符号我只是用来表示文件夹结构。就像 /webapp/realestates/WEB-INF/Files/kurac.jpg。

标签: html jsp


【解决方案1】:

这是一个人不到一分钟的解释。

https://www.youtube.com/watch?v=dwjwSYOrnS8

所以需要两件事:

1.在一些配置xml文件中添加这一行

<mvc:resources location="/files/" mapping="/files/**"></mvc:resources>

2.用这一行将图片包含到JSP页面中

 <img src='<c:url value="/files/korali.jpg"></c:url>' />    

【讨论】:

    【解决方案2】:

    看起来您(和其他所有人)对图像的位置感到困惑。 从你的问题来看,它似乎在webapps/realestates/Files/kurac.jpg,所以这应该有效:

    <img src="/realestates/Files/kurac.jpg">
    

    从您的第一条评论开始,它位于C:/Users/Lazar/Documents/workspace-sts-3.8.3.RELEASE/realestates/Files/kurac.jpg,因此无法通过http:// 访问它。 这行不通。

    根据您后来的评论,它位于/webapp/realestates/WEB-INF/Files/kurac.jpg。 WEB-INF 中的文件不可公开访问。 这也行不通。

    作为最后的手段,将图像文件移动到webapps/ROOT 目录。 从您的浏览器尝试http://localhost/kurac.jpg。 根据需要将localhost 替换为您的服务器主机名。 如果它有效,这也将有效:

    <img src="/kurac.jpg">
    

    如果没有,说明您的 Tomcat 配置有问题。 尝试重新安装。

    【讨论】:

    • 没有任何帮助:(
    【解决方案3】:

    我阅读了您的问题,我为您的问题提供了一种解决方案,您可以使用 INPUT STREAM 在 JSP 页面中添加图像...

    这只是示例...可能有错误,但这是在 JSP 中插入图像的方式...

    Class.forName("com.mysql.jdbc.Driver").newInstance();  
    Connection connection = 
        DriverManager.getConnection(connectionURL, "user", "pass");  
    
    psmnt = connection.prepareStatement(
        "insert into save_image(user, image) values(?,?)");  
    psmnt.setString(1, username);  
    
    ImageIO.write(image, "png", new File("C://image.png")); 
    File imageFile = new File("C://image.png");
    FileInputStream fis = new FileInputStream(imageFile);
    
    psmnt.setBinaryStream(2, (InputStream)fis, (fis.length()));
    int s = psmnt.executeUpdate();
    

    【讨论】:

    • 这不是我需要的。我只需要在页面上显示图像,并且该图像在服务器文件系统上。
    【解决方案4】:

    首先您必须在WEB-INF 目录之外创建图像文件夹并尝试该代码&lt;img src="${pageContext.request.contextPath}/Files/kurac.jpg"/&gt;

    【讨论】:

    • WEB-INF 之外还有文件夹(命名文件),见上文
    • @Asif.Ali 试试上面的代码它工作正常。我也在我的项目中使用相同的代码
    • @Asif.Ali 查看github.com/developerbinod/OLMS 这个项目。上面的代码在这个项目中工作正常
    【解决方案5】:

    网页不允许访问任何本地文件。
    这意味着如果你在 jsp 文件中写 img src="c:\imagesfolder\abc.jpg" 它将不起作用(它只能在某些编辑器中工作,但不能在浏览器中工作)。

    img src="http://localhost.8080/imageshow/sendimage/12/abc.jpg" width="100" height="100"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多