文件上传

文件上传主要步骤:
1,创建工厂
2,利用工厂,创建文件解析器
3,利用文件解析器解析上传的表单数据,解析的结果是List集合,
//1,创建工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
//2,利用工厂,创建文件解析器
ServletFileUpload sfu = new ServletFileUpload(factory);
//3,利用文件解析器解析上传的表单数据
List fileItems = sfu.parseRequest(request);

/**
*判断是不是文件表单项
* 文件表单项,
* 保存上传文件:
* 1,获取上传文件的目录===>真是路径
* 2,获取上传文件的名称
* 3,利用文件目录和文件名称创建目标文件
* (目标文件不存在,用于保存)
* 4,将上传的文件保存到目标文件位置
*/

//循环fileItems
//判断文件表单项
if(!fileItem.isFormField){
//1,获取上传文件的目录
String path ;
//2, 获取上传文件的名称
String fileName = fileItems.get(1).getName(); //假设第二个是文件表单项
//3,利用文件目录和文件名称创建目标文件
File destFile = new File(path,fileName);
//4,将上传的文件保存到目标文件位置
file.get(1).write(destFile)
}

心得 : 更要关注一些限制的判断
1,创建工厂的时候,设置缓存大小和临时目录
DiskFileFactory factory = new DiskFilefactory(15*1024,new File(“F:/temp”));
缓存大小:15*1024=15k
临时目录:F:\temp
2.判断解析出的表单提交数据是否是上传表单的数据,是否是上传文件形式的表单
if(!ServletFileUpload.isMultipartContent(request)){
//按照传统方式获取数据
return;
}

3,判断文件扩展名
4,如果上传的是图片时,校验图片尺寸
4.1,校验图片大小
sfu.setFileSizeMax(15*1024) ; //图片大小限制;15k
4.2,校验图片尺寸===图片保存成功后,再校验
/**
* 获取目标图片
* 保存后进行尺寸大小判断
* 因为是已经保存后的,所以如果尺寸大小不满足,需要在目标文件中删除此文件
*/
//获取目标图片
Image image = new ImageIcon(destFile.getAbsolutePath()).getImage();
//判断目标文件的尺寸
if(image.getHeight(null)>200 || image.getWidth(null)>200){
//目标文件尺寸不符合,删除目标文件
destFile.delete();
}
备忘录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值