zoukankan      html  css  js  c++  java
  • fileupload图片上传到指定文件夹

    用fileupload上传图片到工目录。并用时间格式重命名文件,然后把文件名写进数据库。供前后台调用


    1.前台JSP 表单提交 重点:method="post" enctype="multipart/form-data"


    <form name="myform" action="imgupload.action?name=<%=saler.getName()%>" method="post"  enctype="multipart/form-data"  class="myform">

                  <br>

                  <span>上传或修改图片,1M以内!</span>

                  <input type="file" name="myfile"><br>

                  <input type="submit" name="submit"value="       "/>

     </form>

    2.后台servlet         请无视对你无用的包、

        

    packagefileupload;

     

    import java.io.File;

    import java.io.IOException;

    import java.io.PrintWriter;

    import java.sql.Connection;

    import java.sql.Statement;

    import java.text.DateFormat;

    import java.text.SimpleDateFormat;

    import java.util.Calendar;

    import java.util.Iterator;

    import java.util.List;  

     

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;  

     

    import org.apache.commons.fileupload.FileItem;

    import org.apache.commons.fileupload.disk.DiskFileItemFactory;

    import org.apache.commons.fileupload.servlet.ServletFileUpload;  

    import util.DBUtil;

    @SuppressWarnings("serial")

    publicclass Upload extends HttpServlet {    

       private String uploadPath = "C:\Users\lonec\OneDrive\EatIt\EatIt\WebRoot\images"; // 上传文件的目录 

       private String tempPath  = "C:\Users\lonec\OneDrive\EatIt\EatIt\WebRoot\images\buffer"; // 临时文件目录    

       File tempPathFile;     

       @SuppressWarnings("unchecked")    

       publicvoid doPost(HttpServletRequest request, HttpServletResponse response)           

       throws IOException, ServletException {

          request.setCharacterEncoding("utf-8");

          response.setContentType("text/html;charset=utf-8");

          PrintWriter out = response.getWriter();

          try {           

             // Create a factory for disk-based fileitems           

             DiskFileItemFactory factory = new DiskFileItemFactory();            

              

             // Set factory constraints           

             factory.setSizeThreshold(4096); // 设置缓冲区大小,这里是 4kb           

             factory.setRepository(tempPathFile); // 设置缓冲区目录            

            

             // Create a new file upload handler           

             ServletFileUpload upload = new ServletFileUpload(factory);

             upload.setHeaderEncoding("utf-8");

            

             // Set overall request size constraint           

             upload.setSizeMax(1048576); // 设置最大文件尺寸,这里是 4MB         

             List<FileItem> items = upload.parseRequest(request);// 得到所有的文件            

             Iterator<FileItem> i = items.iterator();

             String imgnameString0=null;

             if (i.hasNext()) {              

                FileItem fi = (FileItem) i.next();              

                String fileName = fi.getName();

                if (fileName != null&&(fileName.endsWith(".jpg")||fileName.endsWith(".JPG")||fileName.endsWith(".png")||fileName.endsWith(".PNG"))) {

                    System.out.println(fi);

                 

                   

                    DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");

                    Calendar calendar = Calendar.getInstance();

                    String imageName = df.format(calendar.getTime());

                    String endname=imageName+".jpg";    // 统一转化成jpg文件  

                    System.out.println(imageName);

                    imgnameString0=endname;

                   

                    File savedFile = new File(uploadPath,endname);

                    System.out.println(savedFile);

                    fi.write(savedFile);

                     

                }else{

                    out.println("<script>alert('请上传正确的文件类型!');history.go(-1);</script>");

                }

               

            

            

             //写进数据库

           

     

             String[] imgnameString = imgnameString0.split("\.");

             System.out.println(imgnameString[0]);

            

             Connection conn=null;

             Statement ps=null;

             String salername=request.getParameter("name");

             byte[] sn = salername.getBytes("iso-8859-1");

             salername = new String(sn,"utf-8");

            

             String sqlString=" UPDATE EatIt_Saler SET imgName ='"+imgnameString[0]+"' WHERE name ='"+salername+"'";

             try {

                conn=DBUtil.getConnection();

                ps=conn.createStatement();

                 ps.executeUpdate(sqlString);

                 

             } catch (Exception e) {

                e.printStackTrace();

             }

              

             //成功后页面跳转,并且刷新

             String page="published.do?name="+salername;    //published.do?name=<%=saler.getName()%>setTimeout();

            out.println("<script>alert('上传成功!');  window.location.href=""+page+""; </script>");//页面带参数跳转  

         

             } catch (Exception e) {      

                // 可以跳转出错页面     

                System.out.print("失败:图片大小超过1M ");

                out.println("<script>alert('图片大小超过1M');history.go(-1);</script>");

                /*e.printStackTrace();        */

             }   

       }      

       publicvoid init() throws ServletException {      

          File uploadFile = new File(uploadPath);       

          if (!uploadFile.exists()) {

             uploadFile.mkdirs();       

          }       

          File tempPathFile = new File(tempPath);        

          if (!tempPathFile.exists()) {          

             tempPathFile.mkdirs();       

          }   

       }

    }

    3.servlet 配置 web.xml文件 、无用的部分已经删除

    <?xml version="1.0"encoding="UTF-8"?>

    <web-app version="2.5"xmlns="http://java.sun.com/xml/ns/javaee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

       <display-name>file</display-name>

       <servlet>

         <servlet-name>Upload</servlet-name>

         <servlet-class>fileupload.Upload</servlet-class>

      </servlet>

      

       <servlet-mapping>

         <servlet-name>Upload</servlet-name>

         <url-pattern>/imgupload.action</url-pattern>

      </servlet-mapping>

    </web-app>


  • 相关阅读:
    bean生命周期
    UI测试 错题分析
    Ajax
    Struts2数据校验
    ognl
    Struts2第一个入门案例
    《使用Hibernate开发租房系统》内部测试笔试题
    Hibernate 测试分析 好多题都是没认真看题错了。
    关于extra加强延迟加载
    加强延迟加载
  • 原文地址:https://www.cnblogs.com/lonecry/p/5074663.html
Copyright © 2011-2022 走看看