学堂首页 | 网站开发 | 工具应用 | 站长时代 | 免费资源 | 网络安全 | 服务器类 | 新闻资讯 | 素材欣赏
您的位置: 中国建站大全 -> 网站开发设计 -> 数据库开发 -> 实例讲解如何用Struts向MySQL中储存图片

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

作者:佚名  来源:本站整理  发布时间:2008-2-19 6:39:41  发布人:网络

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

上一篇:Dreamweaver制作网页技巧20则

下一篇:使用日志转移代替集群来提供较高的可用性   

  • · 注册码大全二
  • · 注册码大全四
  • · 注册码大全一
  • · 要10G免费网络硬盘的请进来!...
  • · 通过google 赶快来赚美金
  • · 注册码大全十
  • · 注册码大全三
  • · 头像-qq头像(qq新头像)4
  • · 让你轻松架设FTP服务器1
  • · 梦幻背景图片7
  • · Sql联合查询
  • · 电脑是间谍? 商业侦探以...
  • · 中文搜索引擎的研究
  • · 系 统 要 求
  • · 用Photoshop创意图形“岁...
  • · 电子商务网站发展趋势
  • · 国内首例博客告博客案 B...
  • · 在ASP处理程序时,进度显...
  • · 使用数字证书的网银用户...
  • · 用色彩提高你的点击率