java大文件上传插件(java课程设计题目及代码)

   日期:2022-02-16     文章发布:文章发布    网络转载:生活号    
核心提示:我们先来看上传文件的原理图: 文件上传流程 上传的本质就是将客户端硬盘中的文件,传送到服务器端的硬盘中。 客户端硬盘-->客户端内存-->服务器端内存-->服务器端硬盘 由于文件比较大,所以每次的传输都是一部分一部分传输的,并不是一次性将文件全部加载到内存中的。我们要做的工作是在服务器端写一个接收客户端发送过来的数据,然后再将数据保存到服务器的硬盘中。客户端将文件加载到内存,内存...
移动站源标题:http://mip.818114.com/news/item-160268.html

我们先来看上传文件的原理图:

文件上传流程

上传的本质就是将客户端硬盘中的文件,传送到服务器端的硬盘中。

客户端硬盘 –> 客户端内存 –> 服务器端内存 –> 服务器端硬盘

由于文件比较大,所以每次的传输都是一部分一部分传输的,并不是一次性将文件全部加载到内存中的。我们要做的工作是在服务器端写一个接收客户端发送过来的数据,然后再将数据保存到服务器的硬盘中。客户端将文件加载到内存,内存发送到服务器这个写步骤是由游览器完成的。

文件上传注意事项:

1、文件上传只能使用post请求,get请求只能提交普通的字符串(HTTP协议规定的)

2、文件上传的时候form标签的enctype属性值必须是:multipart/form-data

3、引入两个jre :commons-fileupload-1.3.1 commons-io-2.2

具体代码如下:

package com.zd.servlet;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletContext;
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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class UploadServlet extends HttpServlet{
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse resp)
			throws ServletException, IOException {
		
		ServletContext servletContext = this.getServletContext();
		
		DiskFileItemFactory factory = new DiskFileItemFactory();
		//设置JVM一次性最大吞吐量
		factory.setSizeThreshold(10240);
		//设置临时文件目录
		String temp = servletContext.getRealPath("temp");
		factory.setRepository(new File(temp));
		
		ServletFileUpload upload = new ServletFileUpload(factory);
		upload.setFileSizeMax(50240);
		try {
			List<FileItem> items = upload.parseRequest(request);
			for (FileItem item: items) {
				if(item.isFormField()){
					
				}
				else
				{
					String filePath = servletContext.getRealPath("uploadPath") + "\\" + item.getName();
					item.write(new File(filePath));
				}
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}
	
	
}
免责声明:本网部分文章和信息来源于互联网,本网转载出于传递更多信息和学习之目的,并不意味着赞同其观点或证实其内容的真实性,如有侵权请通知我们删除!(留言删除
 
 
更多>同类行业

同类新闻
最新资讯
最新发布
最受欢迎
网站首页  |  黄页  |  联系方式  |  信息  |  版权隐私  |  网站地图  |  API推送  |  网站留言  |  RSS订阅  |  违规举报  |  京ICP备2000095号