首页   新闻   数据库   JAVA  

实例讲解如何用Struts向MySQL中储存图片

实例讲解如何用Struts向MySQL中储存图片

[摘要] 这个例子是通过用Struts的FormFile来写入到MySQL中。用户通过选一个图片,然后按submit就可以存入数据库中。 [关键字] Struts MySQL 储存图片
这个例子是通过用Struts的FormFile来写入到MySQL中。用户通过选一个图片,然后按submit就可以存入数据库中。

  1.首先需要建立一个表:

  create table test

  ( name varchar(20),

  pic blob );

  在MySQL的test库中

  < %@ page language="java"% >

  < %@ taglib uri=

  "http://jakarta.apache.org/struts/tags-bean"

  prefix="bean"% >

  < %@ taglib uri=

  "http://jakarta.apache.org/struts/tags-html"

  prefix="html"% >

  < html >

  < head >

  < title >JSP for multiForm form< /title >

  < /head >

  < body >

  < html:form action="/multi"

  enctype="multipart/form-data" >

  一定要用enctype=“multipart/form-data“

  不然就提交之后就会有抛出异常

  file : < html:file property="file"/ >

  < html:errors property="file"/ >< /br>

  name : < html:text property="name"/>

  < html:errors property="name" />< /br >

  < html:submit />< html:cancel />

  < /html:form >

  < /body >

  < /html >

  2. 相对应的ActionForm:

  //Created by MyEclipse Struts

  // XSL source (default):

  platform:/plugin/com.genuitec.eclipse.

  cross.easystruts.eclipse_3.8.1

  /xslt/JavaClass.xsl

  package saoo.struts.form;

  import org.apache.struts.action.ActionForm;

  import org.apache.struts.upload.FormFile;

  /**

  * MyEclipse Struts

  * Creation date: 08-24-2004

  *

  * XDoclet definition:

  * @struts:form name="multiForm"

  */

  public class MultiForm extends ActionForm

  {

  // ----------------

  Instance Variables

  /** file property */

  private FormFile file;

  /** name property */

  private String name;

  // -----------------

  Methods

  /**

  * Returns the file.

  * @return FormFile

  */

  public FormFile getFile()

   {

  return file;

  }

  /**

  * Set the file.

  * @param file The file to set

  */

  public void setFile(FormFile file)

   {

  this.file = file;

  }

  /**

  * 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;

  }

  }

  3. 对就的Action:

  //Created by MyEclipse Struts

  // XSL source (default):

  platform:/plugin/com.genuitec.eclipse.

  cross.easystruts.eclipse_3.8.1

  /xslt/JavaClass.xsl

  package saoo.struts.action;

  import java.io.FileNotFoundException;

  import java.io.IOException;

  import java.sql.Connection;

  import java.sql.DriverManager;

  import java.sql.PreparedStatement;

  import java.sql.SQLException;

  import javax.servlet.http.HttpServletRequest;

  import javax.servlet.http.HttpServletResponse;

  import org.apache.struts.action.Action;

  import org.apache.struts.action.ActionForm;

  import org.apache.struts.action.ActionForward;

  import org.apache.struts.action.ActionMapping;

  import org.apache.struts.upload.FormFile;

  import saoo.struts.form.MultiForm;

  /**

  * MyEclipse Struts

  * Creation date: 08-24-2004

  *

  * XDoclet definition:

  * @struts:action path="/multi"

  name="multiForm" input="/form/multi.jsp"

  scope="request"

  */

  public class MultiAction extends Action

  {

  // ---------------

  Instance Variables

  // ---------------

  Methods

  /**

  * Method execute

  * @param mapping

  * @param form

  * @param request

  * @param response

  * @return ActionForward

  */

  public ActionForward execute(

  ActionMapping mapping,

  ActionForm form,

  HttpServletRequest request,

  HttpServletResponse response)

   {

  MultiForm multiForm = (MultiForm)

   form;

  FormFile file = multiForm.getFile();

  String name = multiForm.getName();

  try {

  Class.forName

   ("org.gjt.mm.mysql.Driver");

  String url="jdbc:mysql:

   ///test";

  Connection con=DriverManager.getConnection

   (url,"root","password");

  String sql="insert into pic values (?,?)";

  PreparedStatement ps

   =con.prepareStatement(sql);

  ps.setString(1, name);

  //加入图片到数据库

  ps.setBinaryStream

  (2,file.getInputStream(),

  file.getFileSize());

  ps.executeUpdate();

  ps.close();

  con.close();

  } catch (SQLException se)

   {

  se.printStackTrace();

  return mapping.findForward("error");

  } catch (ClassNotFoundException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  return mapping.findForward("error");

  } catch (FileNotFoundException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  return mapping.findForward("error");

  } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  return mapping.findForward("error");

  }

  return mapping.findForward("success");

  }

  }


最新发布
  更多>>..
上海神图信息技术开发有限公司招聘
Spring的MVC模型运行序列分析
利用DWR开发基于Ajax的文件上载portlet
漫谈EJB在Java中的应用
EJB 3.1计划中的特性
美国高级工程师谈Struts 2走向
基础:学习Struts提供的和Form相关标签
实例讲解如何用Struts向MySQL中储存图片
第三方类库--Hibernate + Proxool
数据库相关:Hibernate对多表关联查询
使用myFaces的建立一个xml
Java开发框架调查:6%的JSF欲撼动21%的St
Java开发框架调查:6%的JSF欲撼动21%的S
关于我们广告服务| 免费条款投诉意见友情链接联系我们
73cc.com版权所有 不得转载 皖ICP备05020835号