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

2016-02-19 20:28 11 1 收藏

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

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

      /**
       * 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

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

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

来源:https://www.tulaoshi.com/n/20160219/1623761.html

延伸阅读
标签: PHP
虽然在customer_num和order_num上建有索引,但是在上面的语句中优化器还是使用顺序存取路径扫描整个表。因为这个语句要检索的是分离的行的集合,所以应该改为如下语句:
一、ACTION类关键代码 没用的包可以干掉 代码如下: package com.hzdracom.alipay.action; import it.sauronsoftware.base64.Base64; import java.io.IOException; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.util.HashMap; import java.util.Map; import java.util.ResourceBundle; import javax.se...
实例讲解如何巧用延时自拍 延时自拍是现在相机都会提供的一项功能。通常我们认为延时自拍只是方便摄影师自拍,或者方便我们拍摄合影,其实延时自拍的作用不止于此。巧用延时自拍可以拍到很多意想不到的效果。 实例一:巧妙的自拍构想 日本的浮游少女大家肯定都很熟悉,在早些时候浮游简直红遍了整个网络。其实这些照片中的浮游...
标签: PHP
数据库系统是管理信息系统的核心,基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是银行、企业、政府等部门最为重要的计算机应用之一。 从大多数系统的应用实例来看,查询操作在各种数据库操作中所占据的比重最大,而查询操作所基于的SELECT语句在SQL语句中又是代价最大的语句。举例来说,如果数据的量...
实战讲解如何用环境与景深   在人像摄影中,随着人物的肢体动作、表情神态以及拍摄环境的不断变换,画面的效果也会风格迥异。但无论怎样变换,有一个核心的要点一定要引起重视,那就是人像摄影要以人为本,也就是说要确保人物在画面中的视觉中心地位。所以需要通过控制景深、使用不同的景别、合理选择拍摄环境以及利用不同的拍摄视角...

经验教程

373

收藏

68
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部