WEB开发网
开发学院WEB开发Jsp 实例讲解如何用Struts向MySQL中储存图片 阅读

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

 2008-02-18 20:38:05 来源:WEB开发网   
核心提示:这个例子是通过用Struts的FormFile来写入到MySQL中,用户通过选一个图片,实例讲解如何用Struts向MySQL中储存图片,然后按submit就可以存入数据库中, 1.首先需要建立一个表: create table test ( name varchar(20), pic blob );在MySQL的te

这个例子是通过用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");
   }
}

Tags:实例 讲解 如何

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接