java+mysql中保存图片及显示上传的图片struts+hibernate
2007-03-15 11:21
447 查看
早上用Java做了一下在Mysql中上传及显示图片的测试,struts+hibernate
jsp页面
<html:form action="/department.do?method=AddImage" enctype="multipart/form-data">
<table>
<tr>
<td>姓名</td>
<td>
<html:text property="name"></html:text>
</tr>
<tr>
<td>电话</td>
<td><html:text property="tel"></html:text></td>
</tr>
<tr><td>
<html:file property="image"></html:file>
</td></tr>
<tr><td colspan="2"><html:submit></html:submit></td></tr>
</table>
</html:form>
actionForm代码
public class DepartmentForm extends ActionForm {
/*
* Generated fields
*/
/** tel property */
private String tel;
/** name property */
private String name;
private String id;
private FormFile image;
/*
* Generated Methods
*/
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
/**
* Method validate
* @param mapping
* @param request
* @return ActionErrors
*/
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
return null;
}
/**
* Method reset
* @param mapping
* @param request
* @throws UnsupportedEncodingException
*/
public void reset(ActionMapping mapping, HttpServletRequest request)
{
// TODO Auto-generated method stub
try
{
request.setCharacterEncoding("gb2312");
}
catch(Exception ex)
{
}
}
/**
* Returns the tel.
* @return String
*/
public String getTel() {
return tel;
}
/**
* Set the tel.
* @param tel The tel to set
*/
public void setTel(String tel) {
this.tel = tel;
}
/**
* Returns the name.
* @return String
*/
public String getName() {
return name;
}
/**
* Set the name.
* @param name The name to set
*/
public void setName(String name) {
this.name = name;
}
public FormFile getImage() {
return image;
}
public void setImage(FormFile image) {
this.image = image;
}
}
action中代码
public ActionForward AddImage(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
try
{
//保存图片信息
DepartmentForm departmentform = (DepartmentForm)form;
Department department = new Department();
InputStream inputStream = departmentform.getImage().getInputStream();
department.setName(departmentform.getName());
department.setTel(departmentform.getTel());
department.setImage(Hibernate.createBlob(inputStream));
DepartmentDAO departmentDao = new DepartmentDAO();
departmentDao.save(department);
//显示图片
Department department2 = (Department)departmentDao.findByProperty("id", department.getId()).get(0);
Blob imageblob = (Blob)department2.getImage() ;
InputStream input = imageblob.getBinaryStream();
byte [] image = new byte[input.available()];
ServletOutputStream out = response.getOutputStream();
int len = 0;
while((len=input.read(image))!=-1)
{
out.write(image,0,len);
}
out.flush();
out.close();
return null;
}
catch(Exception ex)
{
return null ;
}
}
jsp页面
<html:form action="/department.do?method=AddImage" enctype="multipart/form-data">
<table>
<tr>
<td>姓名</td>
<td>
<html:text property="name"></html:text>
</tr>
<tr>
<td>电话</td>
<td><html:text property="tel"></html:text></td>
</tr>
<tr><td>
<html:file property="image"></html:file>
</td></tr>
<tr><td colspan="2"><html:submit></html:submit></td></tr>
</table>
</html:form>
actionForm代码
public class DepartmentForm extends ActionForm {
/*
* Generated fields
*/
/** tel property */
private String tel;
/** name property */
private String name;
private String id;
private FormFile image;
/*
* Generated Methods
*/
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
/**
* Method validate
* @param mapping
* @param request
* @return ActionErrors
*/
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
return null;
}
/**
* Method reset
* @param mapping
* @param request
* @throws UnsupportedEncodingException
*/
public void reset(ActionMapping mapping, HttpServletRequest request)
{
// TODO Auto-generated method stub
try
{
request.setCharacterEncoding("gb2312");
}
catch(Exception ex)
{
}
}
/**
* Returns the tel.
* @return String
*/
public String getTel() {
return tel;
}
/**
* Set the tel.
* @param tel The tel to set
*/
public void setTel(String tel) {
this.tel = tel;
}
/**
* Returns the name.
* @return String
*/
public String getName() {
return name;
}
/**
* Set the name.
* @param name The name to set
*/
public void setName(String name) {
this.name = name;
}
public FormFile getImage() {
return image;
}
public void setImage(FormFile image) {
this.image = image;
}
}
action中代码
public ActionForward AddImage(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
try
{
//保存图片信息
DepartmentForm departmentform = (DepartmentForm)form;
Department department = new Department();
InputStream inputStream = departmentform.getImage().getInputStream();
department.setName(departmentform.getName());
department.setTel(departmentform.getTel());
department.setImage(Hibernate.createBlob(inputStream));
DepartmentDAO departmentDao = new DepartmentDAO();
departmentDao.save(department);
//显示图片
Department department2 = (Department)departmentDao.findByProperty("id", department.getId()).get(0);
Blob imageblob = (Blob)department2.getImage() ;
InputStream input = imageblob.getBinaryStream();
byte [] image = new byte[input.available()];
ServletOutputStream out = response.getOutputStream();
int len = 0;
while((len=input.read(image))!=-1)
{
out.write(image,0,len);
}
out.flush();
out.close();
return null;
}
catch(Exception ex)
{
return null ;
}
}
相关文章推荐
- java+mysql中保存图片及显示上传的图片struts+hibernate
- 【java】mysql+springMvc+easyui实现图片的保存和读取显示
- java读取mysql中保存的图片并显示在jsp上
- struts+hibernate上传图片保存到oracle的blob字段
- javaweb上传图片,并且从数据库中查出,在页面显示,同时保存图片到数据库中
- struts+hibernate上传图片保存到oracle的blob字段
- java 上传图片 二进制保存到 mysql 请求图片二进制转化为图片 cxf rest jax-rs
- 用Seam实现:图片上传 + 保存到数据库 + 从数据库读出图片并显示到页面中
- java对图片的处理(保存和显示)(zz)
- rails 图片上传mysql,并显示 Encoding::CompatibilityError in controller ...
- 自定义控件实现无刷新上传图片,立即显示缩略图,保存图片缩略图<原创>
- oracle的blob对象在客户端转化为java.sql.Blob,实现上传图片功能,同时将图片在客户端显示案例
- Java+MySql图片数据保存与读取的具体实例
- summernote图片上传功能保存到服务器指定文件夹+php代码+java方法
- java代码上传图片到FTP服务器——图像“ftp://****/images/**.jpg"因存在错误而无法显示
- Struts+Hibernate 做上传图片时的错误
- Struts2 图片上传 hibernate保存图片于数据库 。。
- 自定义控件实现无刷新上传图片,立即显示缩略图,保存图片缩略图<原创>
- java--打开图片--显示图片--保存图片
- Java Servlet图片上传至指定文件夹并显示图片