java从入门到入土(3)文件上传
来源:互联网 发布:mac怎么压缩rar 编辑:程序博客网 时间:2024/06/05 13:29
个人学习笔记
1.jsp页面添加表单 文件域和提交
*表单必需添加enctype="multipart/form-data"属性,且以post方式提交
2.添加外部工具jar包 commons-fileupload.jar commons-io.jar
3.编辑servlet:
response.setContentType("text/html;charset=utf-8;");request.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter(); //1.创建FileItemFactory对象 FileItemFactory fif=new DiskFileItemFactory(); //2.创建servletFileUpload对象(上传对象) ServletFileUpload sfu=new ServletFileUpload(fif); //设置上传的文件大小限制 //sfu.setSizeMax(160*1024); try{ //3.解析请求 传文件时的表单可能还有其他内容 List<FileItem> list=sfu.parseRequest(request); out.print("长度:"+list.size()+"<br/>"); //1.获取非文件域表单对象内容 //String pname=list.get(……).getString("utf-8"); //out.print(pname); //2.获取文件域的相关信息及上传 FileItem fi=list.get(0); //上传 //创建目标文件对象 //将相对路径转化为绝绝路径 String path=request.getRealPath("upload"); //生成唯一文件名 //获取文件的扩展名 String upfileName=fi.getName(); String extName=upfileName.substring(upfileName.lastIndexOf(".")); //实现文件类型的判断 List<String> types=Arrays.asList(".jpg",".jpeg",".gif"); if(!types.contains(extName)){ request.setAttribute("info", "只能上传jpg,gif的图片");} else { //目标文件保存的位置 String fileName=System.currentTimeMillis()+extName; String savePath=path+File.separator+fileName; //上传 File file=new File(savePath); fi.write(file); request.setAttribute("info", "上传成功"); } }catch(FileUploadBase.SizeLimitExceededException ex){ request.setAttribute("info", "超出大小限制"); } catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}
以上 由于原本的文件上传无法和其他表单同时使用 在引入外部jar包以后就可以了 同时也可以限定上传文件的大小和文件类型限制
使用其他的jar包还可以实现在文件上传之前就限定文件类型 而不是上传了以后再检测文件类型
为防止文件名冲突可以在文件名中加入时间
阅读全文
0 0
- java从入门到入土(3)文件上传
- Java 从入门到入土(1)
- Java 从入门到入土(2)
- java从入门到入土(log4j)
- C#从入门到入土——17_11_10
- C#从入门到入土——_17_11_10
- Stm32从入手到入土
- 基于Hexo+Node.js+github+coding搭建个人博客——进阶篇(从入门到入土)
- JavaWeb从入门到放弃(9)-实现一个客户端上传文件到服务端
- JAVA从入门到精通(3)
- Java文件上传(在SpringMVC模式下,从本地上传到服务器)
- JAVA WEB从入门到精通 day22 上传和下载
- Hadoop入门(10)_通过java代码实现从本地的文件上传到Hadoop的文件系统
- Hadoop入门(10)_通过java代码实现从本地的文件上传到Hadoop的文件系统
- Java web从入门到放弃(3)
- (转帖)java从入门到精通
- Java学习从入门到精通 ()
- JAVA从入门到精通(1)
- IDL之参数和关键字
- 十二天
- 多线程爬取糗事百事百科
- 可变字符串的基本操作
- fzuoj 2186 小明的迷宫 bfs+bfs状压+剪枝
- java从入门到入土(3)文件上传
- php中正则表达式详解
- 夜神,逍遥,天天连接AS
- Nginx配置文件详解
- ElasticSearch(map数据类型)Java api 增(批量)删改查(全字段、高亮)
- webpack构建工具安装
- 批量前移list中指定的元素
- 简述 synchronized 和 java.util.concurrent.locks.Lock 的异同 ?
- 二进制中1的个数