博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
上传----------------------------------------服务器处理浏览器上传并保持的功能
阅读量:5265 次
发布时间:2019-06-14

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

提交上传文件时, 要利用form表单,而且method="post"

文件一般字节比较多,get的长度无法满足其要求.
对于enctype="multipart/form-data" 的表单 不能使用req.getParameter来获取action的值.
对于input /select/textarea 等表单域,每个表单标签 (有name属性的)都会生成一个DiskFileItem
然后通过file.getFieldName()可以获取这个表单的名字,getString()获得这个表单对应的值
对于type="file" 额外的 getName()可以获得用户选择的文件的名字.
if(req.getContentType().startsWith(multipart/form-data))FileUpload提供了一个方法 跟这个原理是一样的
if(ServletFileUpload.isMultipartContent(req))//判断这个报文的content-Type是否以multipart/form-data开头{
String temp=req.getSession().getServletContext().getRealPath("/WEB-INF/temp")
//建立一个临时文件夹
File fileTemp=new File(temp);
//上传文件的字节限制,两个参数 一个是字节限制,一个是临时文件夹
DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory(4*1024*1024,fileTemp );
ServletFileUpload upload=new ServletFileUpload(diskFileItemFactory);
//upload从请求中解析出上传的内容.包括表单属性值,文件名,文件内容.
List<FileItem> files=upload.parseRequest(req);//因为一个表单标签对应一个FileItem对象.
//这个是自己封装的一个通过String fileName来从list中拿到对应的FileItem对象的方法.
FileItem actionDiskItem=RupengUtils.findDiskFileItem(files, "action");
//提交文件的表单标签name="f1" 可以通过RupengUtils.findDiskFileItem(files, "f1");
//拿到这个f1对应的FileItem 对象;通过getString()来拿到文件的流;
FileOutputStream fos=new FileOutputStream
(req.getSession().getServletContext().getRealPath("/upload/"+f1.getName()))
//写到磁盘相对于根目录"/"的路径为upload的文件夹里以f1.getName()的名字写入.
IOUtils.copy(f1.getInputStream(),fos); //commons-io 提供的拷贝的方法完成拷贝.
后面再关闭流以及。resp.getWriter().print("上传成功");

转载于:https://www.cnblogs.com/yqwstart2017/p/7502502.html

你可能感兴趣的文章
ssm框架之将数据库的数据导入导出为excel文件
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
验证组件FluentValidation的使用示例
查看>>
0320-学习进度条
查看>>
解决windows系统的oracle数据库不能启动ora-00119和ora-00130的问题
查看>>
ip相关问题解答
查看>>
MetaWeblog API Test
查看>>
反弹SHELL
查看>>
关闭Chrome浏览器的自动更新和升级提示
查看>>
移动、尺寸改变
查看>>
poj2255Tree Recovery【二叉树重构】
查看>>
tcpcopy 流量复制工具
查看>>
vue和react的区别
查看>>
第十一次作业
查看>>
负载均衡策略
查看>>
微信智能开放平台
查看>>
ArcGIS Engine 中的绘制与编辑
查看>>
Oracle--通配符、Escape转义字符、模糊查询语句
查看>>
c# 文件笔记
查看>>
第一页 - 工具的使用(webstorm)
查看>>