文件的上传FileUpLoad

1**. 需要用到commons-FileUpload组件**
获取组件可以去网上下载 http://commons.apache.org/fileupload下载Commons-FileUpload组件
http://commons.apache.org/io下载Commons-IO组件
2. 组件1 Commons-FileUpload组件类库:commons-fileupload-1.2.2.jar API文档: apidocs
3. 组件2 Commons-IO组件类库:commons-io-2.4.jar commons-io-2.4\docs

5. 常用方法:
ServletFileUpload类的常用方法

public void setSizeMax(long sizeMax ) 设置请求信息内容的最大字节数
public List parsRequest(httpServletRequest req ) 解析表单中的每个字符的数据返回一个FileItem对象集合
public statc final Boolean isMultipartCounten(HttpServletRequest req) 判断请求信息的内容是不是“multipart/form-data“类型
public void setHeaderEncoding(String encoding) 设置转换时所使用的字符集编码 FileItem接口的常用方法
public boolean isFormField()判断FileItem对象封装的数据类型(普通表单字段返回true,文件表单字段返回false)
public String getName() 获得文件上传字段中的文件名(普通表单字段返回null)
public String getFieldName()返回表单字段元素的name属性值
public void write() 将FileItem对象中保存的主体内容保存到指定的文件中
public String getString()
public long getSize() 返回单个上传文件的字节数
FileItemFactory接口与实现类
public void setSizeThreshold(int sizeThreshold) 设置内存缓冲区的大小
public void setRepositoryPath(String path ) 设置临时文件存放的目录

  1. 步骤
    a) 先将表单的enctype 属性改为 “multipart/form-data” 方法 为 post
b) 放两个jar上去

c) 创建FileItemFactory对象 FileItemFactory fifactory = new DiskFileItemFactory();

d) 创建ServletFileUpload对象
ServletFileUpload fileUpload = new ServletFileUpload(fifactory);

e) 可以在这里 设置文件的大小
try catch fileUpload.setFileSizeMax(1024);//设置上传最大字节数

f) 解析form表单中所有文件
List items = fileUpload.parseRequest(request);

表单元素 FileItem 分为两类:普通(text/password…)、文件域(file)
g) //遍历表单元素 判断是普通文件还是file文件进行操作
h) 如果是file文件 获取原文件名-》

String fileName = i.getName(); 获取后缀-》

String ext = fileName.substring(fileName.indexOf(’.’));

String ext = FilenameUtils.getExtension(fileName);

//io.jar 两种方式

i) 限制允许上传的文件类型

String[] allowExt = new String[] { “doc”, “jpg”, “txt” };

j) 判断是否符合文件类型 如果符合—》

String 一个文件上传的目录

k) 创建io对象

File file = new File(path + “\” + Math.random() * 100 + “.” + ext);

重新命名防止重名 然后加上后缀ext 最后 i.write(file);实现读写

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值