关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享实例讲解如何用Struts向MySQL中储存图片教程,希望对大家能有一点小小的帮助。
【 tulaoshi.com - 编程语言 】
这个例子是通过用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
    titleJSP 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");
      }
  } 
来源:http://www.tulaoshi.com/n/20160219/1623761.html
看过《实例讲解如何用Struts向MySQL中储存图片》的人还看了以下文章 更多>>