使用FileUpload上传文件

来源:互联网 发布:es6 遍历递归数组 编辑:程序博客网 时间:2024/05/20 18:47

FielUpload是Apache提供的一个免费的上传组件,在使用它之前,我们需要先下载两个包FileUpload包(http://commons.apache.org/proper/commons-fileupload/)和Commons包(http://commons.apache.org/proper/commons-io/)

下面是FileUpload上传的基本步骤:

(1)创建磁盘工厂:DiskFileItemFactory factory = new DiskFileItemFactory() ;(2)创建处理工具:ServletFileUpload upload = new ServletFileUpload(factory) ;(3)设置上传文件的大小:upload.setFileSizeMax(3145728) ;(4)接收全部的内容:List<FileItem> items = upload.parseRequest(request) ;

例子:

DiskFileItemFactory factory = new DiskFileItemFactory() ;//创建磁盘工厂factory.setRepository(new File(临时文件夹路径));//创建处理工具upload.setFileSizeMax(3145728) ;//设置最大上传文件大小为3MB,3*1024*1024List<FileItem> items = upload.parseRequest(request) ;//接收全部内容Iterator<FileItem> item = items.iterator() ;//将全部的内容变为Iterator实例IPTimeStamp its = new IPTimeStamp(request.getRemoteAddr()) ;//实例化IP时间戳对象while(item.hasNext()){//依次取出每一个内容try{FileItem item = iter.next() ;//取出每一个上传的文件String fieldName = item.getFieldName() ;//得到表单控件的名称if(!item.isFormField()){//不是普通的文本数据,是上传文件File saveFile = null ;//定义保存的文件InputStream input = null ;//定义文件的输入流,用于读取源文件OutputStream output = null ;//定义文件的输出流,用于保存文件input = item.getInputStream() ;//取得上传文件的输入流output = new FileOutputStream(new File(路径+item.getName().split("\\.")[1])) ;//定义输出文件路径byte data[] = new byte[512] ;//分块保存int temp = 0 ;while((temp = input.read(data,0,512)) != -1){//依次读取内容output.write(data) ;//保存内容}}}catch(IOException e){throw e ;}finally{try{input.close() ;//关闭流output.close() ;}catch(IOException e1){throw e1 ;}}}
几个方法:

取得文件名称:getName() ;取得文件类型:getContentType() ;取得文件大小:getSize() ;



0 0
原创粉丝点击