struts2图片上传显示
Ⅰ struts2+Hibernate上传图片,如何实现图片可以放在服务器上;数据库保存图片路径。
楼主struts2上传代码会写吗?
struts2本身提供了上传拦截器,用struts2实现上传功能,并获得保存地址
<!-- 配置fileUpload的拦截器 -->
<interceptor-ref name="fileUpload">
获得文件存储地址(上传时指定)+文件名
调用保存方法(Hibernate),将文件路径存入数据库
在一个事务中完成即可!
如:有哪块有难点,及时追问。good luck!
Ⅱ struts2上传图片怎么保存到数据库中
1、在实际开发中,图片一般是上传到图片服务器上,而数据库保存路径。struts2使用upload拦截器可以直接取到图片路径,处理后保存到数据库就行了。
2、对于一些需要保存到数据库的图片,可以使用大文本字段(clob或blob)。方法一般都是使用字节流将图片写入数据库。
Ⅲ struts2中限制上传文件大小后错误信息的显示
Struts2本身提供了一个文件上传的拦截器,通过配置该拦截器可以更轻松地实现文件过滤。我们只需要在Action中配置该拦截器就可以了。当文件过滤失败后,会自动转向input逻辑视图,因此必须为该Action配置名为input的逻辑视图,除此之外还必须为配置defaultStack的拦截器的引用。配置文件如下:
<action name="upload" class="com.annlee.upload.UploadAction" >
<!-- 配置fileUpload的拦截器 -->
<interceptor-ref name="fileUpload">
<!-- 配置允许上传的文件类型 -->
<param name="allowedTypes">image/bmp,image/gif,image/jpg</param>
<!-- 配置允许上传的文件大小 -->
<param name="maximumSize">2000000</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<param name="savePath">/</param>
<result>/common/succ.jsp</result>
<result name="input">/cos_fileupload/fileupload.jsp</result>
</action>
如果上传失败系统会返回到原来的页面,要在原来的页面上加上以下错误提示代码:
<s:fielderror />这样系统就会返回提示给用户,但是这时的提示是Struts2自带的提示,非常不友好,我们可以国际化资源里配置以下两项,我们的提示就会自动替换Struts2的提示,提示的关键字如下
struts.messages.error.file.too.large
struts.messages.error.content.type.not.allowed
此外,如果用户上传失败的原因不是因为以上两种还有另外的一个信息提示用户,它的关健字是:struts.messages.error.uploading,我们也应该替换这个提示信息。
其它说明:如果没有指定临时的保存文件夹,系统就会使用javax.servlet.context.tempdir路径,这个路径是Tomcat的work\Catalina\localhost\,我们应该设置自己的路径,这个配置的属性为struts.multipart.saveDir可以在struts.properties中配置,还有一个文件上传的属性:struts.multipart.maxSize设置整个表单请求内容的最大字节数。
Ⅳ 在Struts2中如何上传图片并将刚刚上传的图片立即显示出来
//action的关键代码
import com.xt.gyz.facelook.service.FacesService;
public class ShowPic extends ActionSupport {
private InputStream is;
private Integer id;
private FacesService facesService;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public void setFacesService(FacesService facesService) {
this.facesService = facesService;
}
public InputStream getIs() {
return is;
}
public void setIs(InputStream is) {
this.is = is;
}
@Override
public String execute() throws Exception {
Faces face=facesService.findById(id);
is=new ByteArrayInputStream(face.getPic());
// FileOutputStream fos=new FileOutputStream(new File("E:/body.jpg"));
//顷返 System.out.println(fos);
// System.out.println("face:"+face.getPic().length);
//圆乎消 fos.write(face.getPic());
// fos.flush();
// fos.close();
return super.execute();
}
}
//不要忘记struts.xml配置
......
<action name="showPic" class="showPicAction">
<result type="stream">
<param name="inputName">is</param>
<param name="contectType">image/jpg</橘知param>
</result>
</action>
.....
这样就可以啦
Ⅳ 使用struts2如何实现文件上传
新建Web Project,在WebRoot下新建upload文件夹
在WebRoot下新建upload.jsp,上传界面
编写上传成功、失败的提示界面。
在WebRoot下新建uploadError.jsp
在WebRoot下新建uploadSuccess.jsp
编写Action类
配置struts.xml文件,重置fileUpload拦截器。
测试,测试完成之后在tomcat下面webapps目录下找到项目对应的文件夹下的upload下查看