⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uploadservlet2.java

📁 java实现的透明信息上传组件
💻 JAVA
字号:
package test;

import java.io.File;
import java.io.IOException;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.util.Streams;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;



public class uploadServlet2 extends HttpServlet {
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
	
		resp.setContentType("text/html;charset=gb2312");
		
		//设置上传文件后的保存目录
	    String path=this.getServletContext().getRealPath("/upload");
		File saveDir = new File(path);   
		
	    try{
	    	
		   if(ServletFileUpload.isMultipartContent(req)){ //判断请求消息是否为multipart/form-data 类型
			
			   
			DiskFileItemFactory dff = new DiskFileItemFactory();   //创建该对象
			
			dff.setSizeThreshold(1024*1024);   //指定在内存中缓存数据大小,单位为byte,超过就存到临时目录
			
			ServletFileUpload sfu = new ServletFileUpload(dff);   //创建该对象
			sfu.setFileSizeMax(1024*1024*5);   //指定单个上传文件的最大尺寸
			sfu.setSizeMax(1024*1024*10);   //指定一次上传多个文件的总尺寸
			sfu.setHeaderEncoding("utf-8");
			FileItemIterator fii = sfu.getItemIterator(req);   //解析request 请求,并返回FileItemIterator集合
			while(fii.hasNext()){
				
			FileItemStream fis = fii.next();  //从集合中获得一个文件流
			InputStream stream=fis.openStream();
			
			if(!fis.isFormField() && fis.getName().length()>0){  //过滤掉表单中非文件域
			String fileName = fis.getName().substring(fis.getName().lastIndexOf("\\")+1);   //获得上传文件的文件名 
			BufferedInputStream in = new BufferedInputStream(stream);   //获得文件输入流
			BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(saveDir,fileName)));  //获得文件输出流
			Streams.copy(in, out, true);   //开始把文件写到你指定的上传文件夹
			}
			}}}catch(Exception e){
			
		      e.printStackTrace();
		     }
			
			
	}}
			

	
	
	
	


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -