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

liyan713

liyan713

2016-02-19 20:28

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享实例讲解如何用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
    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;

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  /**
   * 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();

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

          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");
      }
  }

展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
实例讲解如何用Struts向MySQL中储存图片

MySQL/Postgrsql 详细讲解如何用ODBC接口访问MySQL指南

编程语言 网络编程
MySQL/Postgrsql 详细讲解如何用ODBC接口访问MySQL指南

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

如何在MySQL数据库中直接储存图片

编程语言 网络编程
如何在MySQL数据库中直接储存图片

怎样在Mysql中直接储存图片

MySQL mysql数据库
怎样在Mysql中直接储存图片

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

一个实例讲解MySQL查询优化

MySQL mysql数据库
一个实例讲解MySQL查询优化

PHP 如何向 MySQL 发送数据

PHP
PHP 如何向 MySQL 发送数据

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

CSS让网页更容易设计与维护

CSS让网页更容易设计与维护

打印机后台进程sploosv.exe的解决办法

打印机后台进程sploosv.exe的解决办法
下拉加载更多内容 ↓