Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 无法使用struts2显示上载的图像_Jsp_Struts2 - Fatal编程技术网

Jsp 无法使用struts2显示上载的图像

Jsp 无法使用struts2显示上载的图像,jsp,struts2,Jsp,Struts2,我正在尝试将图像上传到mySQL数据库,并使用struts2标记在jsp上显示它。我能够将图像上传到服务器上,但无法在jsp中显示它。我在网上搜索,做了我能做的所有可能的改变。我仍然无法在jsp上显示图像,这让我对图像是否上传产生了新的怀疑。请通读我的密码,告诉我哪里出错了。谢谢 这是我的jsp <%@ taglib prefix="s" uri="/struts-tags"%> <div id="form_container" align="center">

我正在尝试将图像上传到mySQL数据库,并使用struts2标记在jsp上显示它。我能够将图像上传到服务器上,但无法在jsp中显示它。我在网上搜索,做了我能做的所有可能的改变。我仍然无法在jsp上显示图像,这让我对图像是否上传产生了新的怀疑。请通读我的密码,告诉我哪里出错了。谢谢

这是我的jsp

<%@ taglib prefix="s" uri="/struts-tags"%> 
<div id="form_container" align="center">
    <s:form action="upload" method="post" enctype="multipart/form-data">
        .
        .
        <s:file         name="image"                    label="Retinal Image"/>
        <s:submit       value="upload"/>
    </s:form>
</div>
UploadBean.java

private File    image;
private String  imageContentType;
private String  imageFileName;
//getters and setters
最后,此图像必须显示在成功页面中。 Upload.jsp

<s:property value="imageFileName"/>
<s:property value="imageContentType"/>
<s:property value="image"/>
<img src="#session.image"/>

我的struts.xml是

<action name="upload"       class="com.ActionClasses.UploadAction">
    <interceptor-ref name="fileUpload">
        <param name="maximumSize">3145728</param>
        <param name="allowedTypes">image/png,image/gif,image/jpeg,image/pjpeg, image/jpg</param>
    </interceptor-ref>
    <interceptor-ref name="defaultStack"></interceptor-ref>
    <result name="success"  type="tiles">   uploaded    </result>
    <result name="error"    type="tiles">   upload      </result>
    <result name="input"    type="tiles">   upload      </result>
</action>

3145728
image/png,image/gif,image/jpeg,image/pjpeg,image/jpg
上传
上载
上载

请告诉我我犯的错误。谢谢。

图像路径应该是相对路径。即relativePath\+filename.ext

string  imageRelPath=<relativePath>+"\\"+uploadBean.getImageFileName()

session.put("image"imageRelPath)
然后您的“imageRelPath”将

在你的情况下会的

imageRelPath="./abc.jpg" i.e 

session.put("image","./"+uploadBean.getImageFileName());

由于您没有在任何子文件夹中存储

plz post ur struts.xml,因此您只将文件路径放在会话对象中。它也有文件名吗?在放入会话对象之前检查它的值。@AnkitSharma我做了你说的更改。但是没有显示静止图像。您可以发布filePath变量的值吗?我的文件路径是/home/saipavan/apache-tomcat-7.0.54/wtpwebapps/DReST/O15091400007。我能够在从动作类打印的路径中找到图像。感谢您的回复。我仍然无法在jsp中显示图像。您能给出“filePath”和“uploadBean.getImageFileName()”的值吗?/home/saipavan/apache-tomcat-7.0.54/wtpwebapps/DReST/O15091400007。这是filePath+uploadBean.getImageFileName()。首先,在保存图像(即.jpg、png等)时,您认为缺少文件的扩展名。其次,如果您的应用程序名为“DReST”,则给出路径“/O15091400007”。如果仍然无法获取图像。在Chrome中,按F12键并检查图像元素Chrome将向您显示图像开发人员控制台。右键单击src,然后单击“在新选项卡中打开”。这将通过chrome提供图像的精确引用路径,并将其与正确路径进行比较。我如何才能做到这一点?我不知道用户上传的是哪种类型的图像。getImageContentType()提供的输出类似于image/jpeg。我应该保留一些连接图像扩展的if条件吗。
filePath=filePath+"\\"image;
imageRelPath="./image/abc.jpg"
imageRelPath="./abc.jpg" i.e 

session.put("image","./"+uploadBean.getImageFileName());