zoukankan      html  css  js  c++  java
  • jsp实现文件上传——douploadFile.jsp

    <%@page import="java.io.File"%>
    <%@page import="org.apache.commons.fileupload.FileItem"%>
    <%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
    <%@page import="org.apache.commons.fileupload.FileItemFactory"%>
    <%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("utf-8");
    	//1.判断是不是文件上传表单
    	boolean ismultipart = ServletFileUpload.isMultipartContent(request);
    	if (ismultipart) {
    		//2.创建文件上传工厂
    		FileItemFactory fac = new DiskFileItemFactory();
    		//3.创建文件上传对象
    		ServletFileUpload fileUpload = new ServletFileUpload(fac);
    		//4.解析请求
    		List<FileItem> fileItemList = fileUpload.parseRequest(request);
    		//5.遍历集合,获取相应的数据
    		try {
    	for (FileItem item : fileItemList) {
    		//判断是普通表单数据还是文件数据
    		if (item.isFormField()) {
    			//true为普通表单
    			//获取提交过来表单name属性值
    			//文件上传中不能用下列方法取数据
    			//request.getParameter("userName");
    					String filedName = item.getFieldName();
    					if (filedName.equals("userName")) {
    						//封装用户信息
    						System.out.println("用户名"
    								+ item.getString("utf-8"));
    					} else if (filedName.equals("userPwd")) {
    						System.out.println("密码"
    								+ item.getString("utf-8"));
    					}
    				} else {
    					//false为文件表单
    					//6.获取文件名(全路径)
    					String fullFileName = item.getName();
    					//out.print(fullFileName);
    					File file1 = new File(fullFileName);
    					//只获取文件名,不包含路径
    					String fileName = file1.getName();
    					//7.根据虚拟路径来获取物理路径
    					String uploadPath = application
    							.getRealPath("upload/");
    					File file2 = new File(uploadPath, fileName);
    					item.write(file2);
    					out.print("上传成功!");
    				}//else
    			}//for
    		} catch (Exception ex) {
    			ex.printStackTrace();
    			out.print("上传失败");
    		}
    	}
    %>
    

  • 相关阅读:
    从 MVC 到微服务,技术演变的必经之路
    JBOSS最大连接数配置和jvm内存配置
    数据库原理及应用第7章课后习题答案
    如何实现超高并发的无锁缓存?
    手工清理win7系统C盘的技巧
    SVN版本回退
    在sql server数据库的一个表中如何查询共有多少字段
    软件测试的四个阶段
    sp_change_users_login 'Update_One', '用户名', '登录名';
    讲一讲java异常及自定义异常
  • 原文地址:https://www.cnblogs.com/a1111/p/12816538.html
Copyright © 2011-2022 走看看