栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java文件上传

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java文件上传

java代码
servlet包

package servlet;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
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;

import util.FileUtil;

public class RegistServlet extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("registServlet");
		InputStream is = null;
		FileOutputStream fos = null;
		//1.判断是否为multipart类型的请求
		if(!ServletFileUpload.isMultipartContent(req)) {
			throw new RuntimeException("不是Multipart请求");
		}else {
			//2.获取工厂
			DiskFileItemFactory factory = new DiskFileItemFactory();
			//3.通过工厂创建核心组件
			ServletFileUpload sfu = new ServletFileUpload(factory);
			try {
				//4.通过核心组件解析请求,获取List
				List items = sfu.parseRequest(req);
				//5.遍历items
				for(FileItem item : items) {
					//6.判断是否为普通参数
					if(item.isFormField()) {
						//7.获取普通参数的key和value
						String key = item.getFieldName();
						String value = item.getString();
						System.out.println("key:"+key+",value:"+value);
					}else {
						//8.获取文件信息
						String fileName = item.getName();		//获取文件名
						System.out.println("fileName:"+fileName);
						//9.获取输入流(文件在这个流里面)
						is = item.getInputStream();
						//10.创建一个输出流
						String url = req.getServletContext().getRealPath("/file/a/b/c");		//获取真实路径
						System.out.println("url:"+url);
						//D:apache-tomcat-9.0.24webappsjavaweb11file
						//保证这个路径已经创建
						fos = new FileOutputStream(FileUtil.createFile(url, fileName));
						byte[] bytes = new byte[1024];
						int len = 0;
						while((len=is.read(bytes)) != -1) {
							fos.write(bytes, 0, len);
						}
					}
				}
			} catch (FileUploadException e) {
				e.printStackTrace();
			} finally {
				if(is != null) {
					is.close();
				}
				if(fos != null) {
					fos.close();
				}
			}
		}
	}
}


package servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ToRegistServlet extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		req.getRequestDispatcher("WEB-INF/jsp/regist.jsp").forward(req, resp);
	}
}

filter包

package filter;

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyFilter extends HttpFilter{
	@Override
	protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();  
		request.getServletContext().setAttribute("basePath", basePath);
		super.doFilter(request, response, chain);
	}
}

util包

package util;

import java.io.File;

public class FileUtil {
	
	//parentUrl:D://卓讯/课件		childUrl:文件上传.pdf
		public static File createFile(String parentUrl, String childUrl) {
			File file = new File(parentUrl);
			if (!file.exists()) {
				file.mkdirs();
			}
			File result = new File(parentUrl, childUrl);
			return result;
		}
}

html代码

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>




用户注册


	
/regist.do" method="post" enctype="multipart/form-data"> 用户名:
密码:
上传文件:

web.xml代码



  fileloade
  
  		registServlet
  		servlet.RegistServlet
  
  
  		registServlet
  		/regist.do
  
  
  		toRegisterServlet
  		servlet.ToRegistServlet
  
  
  		toRegisterServlet
  		/toregist.do
  
  
  		myFilter
  		filter.MyFilter
  
  
  		myFilter
  		/*
  

访问路径:
http://localhost:8080/fileloade/toregist.do

bug:当启动tomcat是上传的内容被清空。

需要jar包:
/fileloade/WebContent/WEB-INF/lib/commons-fileupload-1.3.1.jar
/fileloade/WebContent/WEB-INF/lib/commons-io-2.2.jar
/fileloade/WebContent/WEB-INF/lib/jstl-1.2.jar
/fileloade/WebContent/WEB-INF/lib/servlet-api.jar
/fileloade/WebContent/WEB-INF/lib/standard-1.1.2.jar

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/667758.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号