zoukankan      html  css  js  c++  java
  • commonfileupload

    apache的common-fileupload简单用法实例

    1 jsp

     1 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
     2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     3 <html>
     4 <head>
     5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     6 <title>欢迎使用</title>
     7 </head>
     8 
     9 <body>
    10     <div>
    11         <form action="servlet/FileUploadServlet" method="post" enctype="multipart/form-data">
    12             <input type="file" name="file"/>
    13             <input type="text" name="desc"/>
    14             <input type="submit" name="submit" value="上传"/> 
    15         </form>
    16     </div>
    17 </body>
    18 </html>

    2、Servlet

     1 package com.test.upload.servlet;
     2 
     3 import java.io.File;
     4 import java.io.IOException;
     5 import java.io.UnsupportedEncodingException;
     6 import java.util.ArrayList;
     7 import java.util.Iterator;
     8 import java.util.List;
     9 
    10 import javax.servlet.ServletException;
    11 import javax.servlet.http.HttpServlet;
    12 import javax.servlet.http.HttpServletRequest;
    13 import javax.servlet.http.HttpServletResponse;
    14 
    15 import org.apache.commons.fileupload.FileItem;
    16 import org.apache.commons.fileupload.FileUploadException;
    17 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    18 import org.apache.commons.fileupload.servlet.ServletFileUpload;
    19 import org.apache.commons.lang.StringUtils;
    20 
    21 
    22 public class FileUploadServlet extends HttpServlet {
    23     
    24     private static final long serialVersionUID = 6896969016159333196L;
    25     private static final int MAX_FILE_SIZE = 10*1024*1024;//10MB
    26     public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
    27         doPost(request, response);
    28     }
    29     
    30     public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException{
    31         try {
    32             request.setCharacterEncoding("utf-8");
    33         } catch (UnsupportedEncodingException e2) {
    34             e2.printStackTrace();
    35         }
    36         String path= "d:"+File.separator+"temp"+File.separator;
    37         File file = new File(path);
    38         if(!file.exists()){
    39             file.mkdir();
    40         }
    41         DiskFileItemFactory factory = new DiskFileItemFactory();
    42         factory.setSizeThreshold(4096);
    43         factory.setRepository(file);
    44         
    45         ServletFileUpload upload= new ServletFileUpload(factory);
    46         upload.setSizeMax(MAX_FILE_SIZE);
    47         
    48         List items = new ArrayList();
    49         try {
    50             items = upload.parseRequest(request);
    51             Iterator iterable = items.iterator();
    52             while(iterable.hasNext()){
    53                 FileItem fileItem = (FileItem) iterable.next();
    54                 
    55                 if(!fileItem.isFormField()){
    56                     String tempName = fileItem.getName();
    57                     if(!StringUtils.isEmpty(tempName) && fileItem.getSize() > 0){
    58                         System.out.println(fileItem.getName()+","+fileItem.getFieldName());
    59                         File upFile = new File(path+tempName);
    60                         fileItem.write(upFile);
    61                     }else {
    62                         System.out.println("附件为空");
    63                     }
    64                 }
    65             }
    66         } catch (FileUploadException e1) {
    67             e1.printStackTrace();
    68         } catch (Exception e) {
    69             e.printStackTrace();
    70         }
    71     }
    72 }

    3 web.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
     3   <display-name>上传文件</display-name>
     4   
     5   <servlet>
     6       <servlet-name>FileUploadServlet</servlet-name>
     7       <servlet-class>com.test.upload.servlet.FileUploadServlet</servlet-class>
     8   </servlet>
     9   <servlet-mapping>
    10       <servlet-name>FileUploadServlet</servlet-name>
    11       <url-pattern>/servlet/FileUploadServlet</url-pattern>
    12   </servlet-mapping>
    13   <welcome-file-list>
    14     <welcome-file>upload.jsp</welcome-file>
    15   </welcome-file-list>
    16   
    17 </web-app>

    增加个用jquery.form.js上传

     1 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
     2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     3 <html>
     4 <head>
     5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     6 <title>欢迎使用</title>
     7 </head>
     8 <script type="text/javascript" src="js/jquery.js"></script>
     9 <script type="text/javascript" src="js/jquery.form.js"></script>
    10 <script type="text/javascript">
    11     function submitform(){
    12         var options = {
    13                 url:'servlet/FileUploadServlet',
    14                 dataType:"json",
    15                 type:'post',
    16                 success: function(){
    17                     $('#output1').html("提交成功!").show(); 
    18                 }
    19         };
    20         $("#form1").ajaxSubmit(options);
    21         return false;
    22         }
    23     
    24 
    25 </script>
    26 <body>
    27     <div>
    28         <form id="form1" action="servlet/FileUploadServlet" method="post" enctype="multipart/form-data" >
    29             <input type="file" name="file"/>
    30             <input type="text" name="desc"/>
    31             <button type="button" name="btn1" onclick="javascript:submitform();">上传</button>
    32         </form>
    33     </div>
    34     <div id="output1">
    35     </div>
    36 </body>
    37 </html>

    jquery form中options参数详见:http://www.malsup.com/jquery/form/#options-object

    有关文件上传的有个知识点:enctype

    1 application/x-www-form-urlencoded (默认值)
    2 multipart/form-data
    3 text/plain

    有关enctype详细见:http://wenku.baidu.com/view/7d2be4ea81c758f5f61f67fa.html

  • 相关阅读:
    javascript 之异常处理try catch finally--05
    javascript 之基本包装类型--04
    javascript 之基本数据类型、引用数据类型区别--02
    javascript 之数据类型--01
    CSS3 object-fit 图像裁剪
    jQuery.extend 使用函数
    ios 不支持iframe 解决方案
    python常用代码积累
    mysql日志类型
    python中列表 元组 字符串如何互相转换
  • 原文地址:https://www.cnblogs.com/ikuman/p/2796877.html
Copyright © 2011-2022 走看看