java课程设计题目及代码(java大文件上传插件)
admin
2022-11-19 10:50:34

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

文件上传流程

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

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

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

文件上传注意事项:

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 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(); } } }

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...