博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件上传及文件大小限制_学习笔记
阅读量:6480 次
发布时间:2019-06-23

本文共 2419 字,大约阅读时间需要 8 分钟。

文件的上传主要分成两个步骤:

 1.用户在页面中选择要上传的文件,然后将请求提交到Servlet

 2.Servlet收到请求,解析用户上传的文件,然后将文件存储到服务器

 

 以下内容需要注意

 

1. 表单的method属性必须为post

 

2. 表单enctype属性必须为multipart/form-data

 

3.上传文件的控件是intput,type属性为file

编写Servelet

 

页面的表单控件创建好以后,选中文件点击上传按钮请求将会提交到指定的Servlet来处理

注意:这里不能再以前的Servlet中那样,通过request.getParamter()获取请求参数了,当enctype="multipart/form-data" 时,再使用getParamter()获取到内容永远为空因为浏览器发送请求的方式已经改变

 

既然以前的方法不能使用了,这里我们必须要引入一个新的工具来解析请求中的参数和文件,这个工具就是commons-fileupload。

下面是我写的一个上传图片到\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\json\upload文件的servlet代码

public class AServlet extends HttpServlet {    private static final long serialVersionUID = 1L;        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        DiskFileItemFactory factory = new DiskFileItemFactory();        ServletFileUpload fileUpload =new ServletFileUpload(factory);        fileUpload.setFileSizeMax(1024*100);        ServletContext servletContext= request.getServletContext();        String realPath =servletContext.getRealPath("/upload");        File file =new File(realPath);        if(file.exists()){            file.mkdir();        }        try {            List
fileList = fileUpload.parseRequest(request); for(FileItem item:fileList){ if(item.isFormField()){ String name =item.getFieldName(); String value =item.getString("utf8"); System.out.println(name+value); } else { long size =item.getSize(); String name = item.getName(); System.out.println(size); try { item.write(new File(realPath+"\\"+name)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}

限制单个文件大小:

限制总文件的大小:

Jsp页面代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
Insert title here
用户:

需要注意的是:

 

 

 

转载于:https://www.cnblogs.com/mki-mki/p/7388589.html

你可能感兴趣的文章
spring boot启动定时任务
查看>>
算法 (二分查找算法)
查看>>
java Date 当天时间戳处理
查看>>
Python~迭代
查看>>
linux常用命令-关机、重启
查看>>
css布局 - 九宫格布局的方法汇总(更新中...)
查看>>
iOS开发之调用系统设置
查看>>
解决wampserver 服务无法启动
查看>>
初次使用 VUX
查看>>
javascript 字符串转数字的简便写法
查看>>
html之div始终停留在屏幕中间部分
查看>>
Spring中jdbcTemplate的用户实例
查看>>
[模板] 快速傅里叶变换/FFT/NTT
查看>>
DecimalFormat 数据格式设置 SimpleDateFormat时间格式的用法介绍 --转载
查看>>
Android 的Margin和Padding属性以及支持的长度单位
查看>>
HDU ACM 1050 Moving Tables
查看>>
Django templates加载css/js/image等静态资源
查看>>
Eclipse C + GTK2.0环境构筑
查看>>
caffe solver
查看>>
Rhel6-heartbeat+lvs配置文档
查看>>