這個例子是通過用Struts的FormFile來寫入到MySQL中。。。
用用戶通過選一個圖片,然后按submit就可以存入數據庫中
其中先要建立一個表:
create table test ( name varchar(20), pic blob );在MySQL的test庫中
<%@ page language="java"%>
<%@ taglib uri="<%@ taglib uri="?
<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");
??? }
}
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=83071
相關文章:
- UploadForm 2005-03-08 blue_wwj
- StrutsFileUpload 2006-01-12 Killvin
- StrutsCatalog系列(5)--文件上傳 2005-11-14 caiyi0903
- How to build a struts application 2004-09-06 wordonbeach
- struts上傳下載實現 2006-05-20 luanfengxia