zoukankan      html  css  js  c++  java
  • HTML5实现多文件的上传示例代码

    [转自] http://www.jb51.net/html5/136791.html


    主要用到的是<input>的multiple属性

    代码如下:

    <input type="file" name="multipleFileUpload" multiple /> 

    下面是页面的详细代码:

    代码如下:
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>Solution 4-5: Sending multiple files</title>
    </head>
    <body>
    	<form id="myForm"
    		action="http://10.10.25.31:8080/myupload/UploadPhotoServlet"
    		ENCTYPE="multipart/form-data" METHOD="POST">
    		<input type="file" name="multipleFileUpload" multiple /> <input
    			type="submit" value="提交"> <input type="reset" value="重设">
    	</form>
    </body>
    </html>
    

    java后台的详细代码:

    代码如下:

    import java.io.File;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    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.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    /**
     * Servlet implementation class UploadPhotoServlet
     */
    public class UploadPhotoServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	/**
    	 * @see HttpServlet#HttpServlet()
    	 */
    	public UploadPhotoServlet() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
    	 *      response)
    	 */
    	protected void doGet(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doPost(request, response);
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
    	 *      response)
    	 */
    	@SuppressWarnings("unchecked")
    	protected void doPost(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		String imagePath = "c:\uploadFile\Image\" + getEachDate() + "\";// 按日期生成文件夹
    		File uploadPath = new File(imagePath);
    		if (!uploadPath.exists()) {
    			uploadPath.mkdirs();
    		}
    		File tmp = new File("c:\tmp\");
    		if (!tmp.exists()) {
    			tmp.mkdirs();
    		}
    		DiskFileItemFactory factory = new DiskFileItemFactory();// 创建磁盘工厂
    		factory.setRepository(tmp);// 设置文件缓存路径
    		factory.setSizeThreshold(10 * 1096);// 将文件保存在内存还是磁盘临时文件夹的默认临界值,值为10240,即10kb
    		ServletFileUpload sfu = new ServletFileUpload(factory);// 创建处理工具
    		sfu.setSizeMax(10 * 1024 * 1024);// 服务器端可以接收的最大文件大小,-1表示无上限
    		String fileName = null;
    		try {
    			List<FileItem> list = sfu.parseRequest(request);// 解析
    			if (list.size() < 1) {
    				return;
    			}
    			for (int j = 0; j < list.size(); j++) {
    				FileItem item = list.get(j);
    				fileName = item.getName();
    				if (fileName.equals("")) {
    					request.getRequestDispatcher("/com/visualizerPhoto.jsp")
    							.forward(request, response);
    					return;
    				}
    				int pos = fileName.lastIndexOf(".");// 取图片文件格式
    				if (pos > 0) {
    					Date date = new Date();
    					fileName = imagePath + date.getTime()
    							+ fileName.substring(pos);
    				}
    				System.out.println("item:" + item);
    				item.write(new File(fileName));// 写到磁盘
    			}
    		} catch (FileUploadException e) {
    			e.printStackTrace();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    	// 13-11-15
    	public static String getEachDate() {
    		Calendar cal = Calendar.getInstance();
    		cal.add(Calendar.DATE, 0);
    		String yesterday = new SimpleDateFormat("yyyy-MM-dd ").format(cal
    				.getTime());
    		String[] dates = yesterday.split("-");
    		String realDate = dates[0].substring(2, 4) + "-" + dates[1] + "-"
    				+ dates[2];
    		return realDate.trim();
    	}
    }

    下面是效果图:

  • 相关阅读:
    matlab矩阵中如何去掉重复的行;如何找到相同的行,并找到其位置
    Coursera 机器学习 第9章(下) Recommender Systems 学习笔记
    机器学习基石笔记1——在何时可以使用机器学习(1)
    Coursera 机器学习 第9章(上) Anomaly Detection 学习笔记
    matlab安装过程的被要求的配置程序
    jdk环境变量配置
    Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记
    Coursera 机器学习 第8章(上) Unsupervised Learning 学习笔记
    Coursera 机器学习 第7章 Support Vector Machines 学习笔记
    linux服务器---squid限制
  • 原文地址:https://www.cnblogs.com/pekkle/p/6568725.html
Copyright © 2011-2022 走看看