Java实现多文件上传功能
Java实现多文件上传功能,恰卡网带你了解更多相关信息。
文件上传是开发中十分常见的功能,在servlet3.0之前,实现文件上传需要使用一些插件技术,比如:
- commons-fileupload
- smartupload
但是在3.0之后servlet内部集成文件上传的技术(multipart),有关servlet3.0文件上传的实现过程如下:
1、表单的提交方式必须设置为post
2、表单的enctype必须设置为multipart/form-data(使用二进制流的方式提交数据)
3、在servlet类中加上@MultipartConfig注解
包含四个可设置的参数分别为:
- fileSizeThreshold 内存缓存的最大空间(当上传文件的字节数达到该值后使用临时文件缓存)
- location 临时文件的存储目录
- maxFileSize 允许上传的单个文件的最大限制
- maxRequestSize 表单允许提交的总字节数
页面端
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="upload3" method="post" enctype="multipart/form-data"> <input type="text" name="fname" placeholder="请输入文件名" /> <br /> <input type="file" name="myfile" multiple/> <button>上传</button> </form> </body> </html>
服务端
package com.softeem.servlet; import java.io.File; import java.io.IOException; import java.util.Collection; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Part; @WebServlet({ "/UploadServlet", "/upload" }) @MultipartConfig( //设置内存缓存的最大空间(当上传文件的字节数达到该值后使用临时文件缓存) fileSizeThreshold=1024*1024, //设置临时文件的存储目录 location="d:/temp", //设置允许上传的单个文件的最大限制 maxFileSize=1024*1024*200, //设置表单的最大允许提交的字节数 maxRequestSize=1024*1024*500 ) public class UploadServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String basePath = "d:/myfileserver"; Collection<Part> parts = request.getParts(); for(Part part:parts){ if(part.getSize() > 0){ String fname = part.getSubmittedFileName(); //随机产生一个uuid作为文件名称 String uuid = UUID.randomUUID().toString(); //获取文件后缀 String suffix = fname.substring(fname.lastIndexOf(".")); //组合uuid和文件后缀成为新的文件名称 fname = uuid+suffix; part.write(basePath+File.separator+fname); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持趣讯吧。
推荐阅读
-
洗衣机不脱水了是怎么回事(洗衣机不甩干的处理方法)
洗衣机作为大家日常生活必备的家用电器,其利用率频繁,难免会因为机械磨损、缺乏润滑油、机件老化、弹簧疲劳变形等原因,出现各种不正...
-
电子表格零基础自学教程(小白也能学明白)
可能很多人(包括我)觉得Excel不就是做个表吗,没什么好学的。然而很多大型企业在面试的时候还是会问,“会Excel吗?”“会...
-
笔记本电脑报价大全(联想笔记本多少钱)
(注意:建议在旗舰店、官方旗舰店、官网购买) 一、游戏本设计本、办公本推荐如下: 华为品牌:(全球第一大电信设备商) 1...
-
煲机软件哪个好(让耳机有个思想准备)
《无间道》中陈永仁与刘建明有过一句经典对白&mdash;&mdash;“高音甜、中音准、低音沉,总之一个词通透”。这一句话也一...
-
viewsonic平板电脑(viewsonic平板电脑刷机)
ViewSonic是一个视讯品牌,中文名字:优派。 ViewSonic 一、读音:英[vju:][?s?n?k],美[vj...
-
采访麦克风户外哪款好(讯飞智能无线麦克风C1采访神器)
对于视频创作者、直播工作者、远程培训老师、记者等媒体工作者来说,工作过程中,最让人费心的莫过于如何确保收音纯正、字幕快速生成、...
-
电脑硬件配置怎么查(详述两招快速查看电脑配置参数信息)
大家好,今天跟大家分享两个快速查看电脑配置参数信息的办法。 操作步骤如下: 1右击电脑屏幕最下方任务栏左侧的电脑徽标按钮,...
-
数据线没坏但充不上电怎么办(数据线充不上电处理方法)
苹果充电器突然充不上电是比较尴尬的问题,首先看自己的充电器数据线是不是原装,如果非原装在第一次充电时,苹果手机会提示你是否要适...
-
电脑开机出现黑屏如何处理(电脑不能开机黑屏解决方法)
电脑不能开机或者开机以后黑屏怎么解决?这里收集了所有常见的维修方法,看完秒变维修高手,实在是一篇不能错过的电脑维修教程。简单易...
-
手机宝典怎么搞(小米手机性能优化宝典)
别再总是抱怨手机卡顿,系统臃肿,反应慢,现在看完这篇文章,你会发现你并不了解小米手机,当然,文中许多方法并不是仅仅适用于小米手...