Java实现多个文件上传(验证文件大小、文件类型)
来源:互联网 发布:网络歪歌公社最新歌曲 编辑:程序博客网 时间:2024/05/22 09:41
文件上传是每个java开发者必须掌握的。文件上传有很多种实现方式,但其实也大同小异。笔人在这里为大家介绍一种我习惯用的,上传文件的方式。大家先看代码,最后我会分享我的源码给大家。
- 1、首先要准备一下需要用到的jar包。
- commons-fileupload-1.2.1.jar
-commons-io-1.4.jar
可以从[(http://commons.apache.org/)]下载,当然,我的项目源码里也有
然后开始写代码。
- commons-fileupload-1.2.1.jar
public static String fileUpload(HttpServletRequest request,HttpServletResponse response)throws Exception{ //允许上传的文件类型 String fileType = "mp3,mp4,video,rmvb,pdf,txt,xml,doc,gif,png,bmp,jpeg"; //允许上传的文件最大大小(100M,单位为byte) int maxSize = 1024*1024*100; response.addHeader("Access-Control-Allow-Origin", "*"); //文件要保存的路径 String savePath = request.getRealPath("/") + "save/"; response.setContentType("text/html; charset=UTF-8"); //检查目录 File uploadDir = new File(savePath); if ( !uploadDir.exists()) { uploadDir.mkdirs(); } if ( !uploadDir.canWrite()) { return "上传目录没有写权限!"; } DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(1024 * 1024); //设置缓冲区大小,这里是1M factory.setRepository(uploadDir); //设置缓冲区目录 ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("UTF-8"); List items = upload.parseRequest(request); Iterator it = items.iterator(); FileItem item = null; String fileName = ""; String name = ""; String extName = ""; String newFileName = ""; while (it.hasNext()) { item = (FileItem)it.next(); fileName = item.getName(); if (null == fileName || "".equals(fileName)) { continue; } //判断文件大小是否超限 if (item.getSize() > maxSize) { item.delete(); JOptionPane.showMessageDialog(null, "文件大小超过限制!应小于" + maxSize / 1024 / 1024 + "M"); return "文件大小超过限制!应小于" + maxSize; } //判断文件类型是否匹配 // System.getProperties().getProperty("file.separator")) //获取文件名称 name = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName.lastIndexOf(".")); //获取文件后缀名 extName = fileName.substring(fileName.indexOf(".") + 1).toLowerCase().trim(); //判断是否为允许上传的文件类型 if ( !Arrays.<String> asList(fileType.split(",")).contains(extName)) { item.delete(); JOptionPane.showMessageDialog(null, "文件类型不正确,必须为" + fileType + "的文件!"); return "文件类型不正确,必须为" + fileType + "的文件!"; } SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); newFileName = name + df.format(new Date()) + "." + extName; File uploadedFile = new File(savePath, newFileName); item.write(uploadedFile); } return "success";}
<form action="<%=basePath%>fileUpload" method="post" enctype="multipart/form-data"> <input type="file" name="file" /> <input type="file" name="file" /> <input type="submit" value="上传"> </form>
上面代码就已经ok了。我的一些参数是写死的,比如允许文件上传的大小,还有文件的类型。大家最好是写在一个配置文件中,然后去读取这个配置文件,得到里面的参数。虽然配置文件里的参数也是写死,但是意义不同,作为一个程序员你就是给别人提供方便的,不可能每次已改就要动里面的代码,只需要改配置文件就可以了。这也是需要我们做到智能化。
当然,上面代码只是做到上传的功能,下面我会分享我的源码,源码里面就是写在配置文件里的,然后,如果上传文件不符合要求,就将信息返回到前台可视化显示。
下面分享一下我的源码:文件上传
如果遇到问题大家可以互相交流、切磋!
0 0
- Java实现多个文件上传(验证文件大小、文件类型)
- struts文件上传(上传文件大小设置、验证文件大小)
- struts文件上传(上传文件大小设置、验证文件大小)
- 多文件上传类【文件类型严格验证】
- $ajax 文件上传,带进度条,文件类型,文件大小
- javascrip客户端验证文件大小及文件类型并重置上传
- javascrip客户端验证文件大小及文件类型并重置上传
- javascrip客户端验证文件大小及文件类型并重置上传
- javascrip客户端验证文件大小及文件类型并重置上传
- javascrip客户端验证文件大小及文件类型并重置上传
- 上传文件时JS验证文件类型
- webuploader上传文件,含文件大小、类型验证
- jquery实现上传文件大小类型的验证
- jquery实现上传文件大小类型的验证
- ASP.NET上传图片,服务器端验证,宽度,高度,文件类型,尺寸,文件大小,图片上传,图片格式检查
- java文件上传(文件大小校验)、下载、删除的实现代码
- 上传文件(限制文件类型)
- FileUpload控件文件上传、扩容、限制文件类型及上传验证
- Nginx出现413 Request Entity Too Large错误解决方法
- 黑马程序员——java基础知识之IO流(二)
- 新学solr测试中遇到错误
- CentOS6.5搭建LNMP
- 豪气:2.5年,从0->阿里巴巴
- Java实现多个文件上传(验证文件大小、文件类型)
- 10 Ways Great Speakers Capture People's Attention
- MFC对话框的状态栏添加进度条
- 【学习笔记】JavaScript编码规范-数组
- CentOS 7.0默认使用的是firewall作为防火墙
- http://www.51testing.com/html/82/n-819282-3.html
- 简单的Spinner运用
- Mark GetProcAddress Using In Win & Unix
- OpenCV学习笔记(11):hough变换和概率hough变换