文件上传组件 FileUpload组件的使用

文件的上传存在的意义

在项目中经常上传文件:qq上传图片,相册上传图片,资料的共享……

实现文件上传的步骤

1.指定表单的类型为文件上传表单

必须指定表单的属性  enctype="multipart/form-data"

<form action="" method="post" enctype="multipart/form-data>

<input type="file" name="files"/>

2.提交方式必须为post

手动上传文件处理

//获取表单中的文件

//获取输入流

InputStream in = request.getInputStream();

//转换流

InputStreamReader inReader = new InputStreamReader(in);

//定义缓冲流

BufferedReader br = new BufferedReader(inReader);

处理数据文件

Content-Disposition: form-data; name="files"; filename="D:\01readme.txt"

Content-Type: text/plain

需要具体处理文件,必须处理 Content-Disposition

在开发中使用文件上传组件来上传文件

一个好的组 最大的特点:简单易用   安全     其次是功能强大

通常使用fileupload组件上传文件   需要引入的包

1.commons-fileupload-1.2.1.jar

2.commons-io-1.4.jar

//创建文件上传工程类

FileItemFactory fileItemFactory = new DiskFileItemFactory();

FileItemFactory 把每一个表单请求对象封装成一个FileIteam对象

fac.serRepository(repository)设置文件上传的临时目录

默认为服务器的temp目录

虚拟机最大内存 在Windows下为1g  在 linux下最大为16g。

//先创建文件上传核心类对象

ServletFileUpload upload = new ServletFileUpload(fileItemFactory);

作用:可以获取所有的FileItem对象

upload.parseRequest(request);返回值类型List,获取所有文件上传项

Boolean isMultipartContent(request)判断表单的类型

upload.setFileSizeMax(fileSize)设置单个文件的最大值

upload.setSizeMax(fileSize)设置上传文件(所有的文件)的最大值

upload.setHeaderEncoding(编码方式);相当于request.setContentType(编码方式);

//判断是否是文件上传表单

if (ServletFileUpload.isMultipartContent(request)) {

//把请求数据转换为FileIteam对象集合

try {

//list中放置的每一个上传项

List<FileItem> list = upload.parseRequest(request);

//遍历每一个上传项

for (FileItem fileItem : list) {

//判断是普通表单,还是文件上传项

if (fileItem.isFormField()) {

//普通表单

String fileName = fileItem.getFieldName();

//文本框的值

String  str = fileItem.getString();

} else {

//文件表单

//表单元素名字

String fileName = fileItem.getFieldName();

//文件的类型

String contentType = fileItem.getContentType();

//获取文件名字

String name = fileItem.getName();

//获取文本框的值  即文件内容

String  str = fileItem.getString();

//设置请求的编码 处理编码

fileItem.getString("编码方式");

//把文件写到指定的目录下

fileItem.write(new File("指定目录"))

//删除临时文件

fileItem.delete()

//文件流

InputStream in = fileItem.getInputStream();

//文件的大小

long size = fileItem.getSize();

}

}

} catch (FileUploadException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} else {

System.out.println("不是文件上传表单");

}

时间: 2024-10-09 05:12:54

文件上传组件 FileUpload组件的使用的相关文章

java文件上传-使用apache-fileupload组件

目前文件上传的(框架)组件:Apache----fileupload .Orialiy – COS – 2008() .Jsp-smart-upload – 200M. 用fileupload上传文件: 需要导入第三方包: Apache-fileupload.jar – 文件上传核心包. Apache-commons-io.jar – 这个包是fileupload的依赖包.同时又是一个工具包. 使用springmvc,解决烦人的post乱码问题,新建maven项目: maven依赖: <depe

文件上传(FileUpload控件)

asp.net 文件上传,大文件上传. 新建一个asp.net页面,在工具栏里拖入 FileUpload 上传控件.一个按钮 Button  !    !     ! 进入Button事件 //------------------------------------------------------------------------- string path = FileUpload1.PostedFile.FileName;              //获取上传文件的路径        

又见文件上传问题--fileUpLoad

这是第三次写关于文件上传的随笔了,为了这文件上传我也是醉了.废话不多说,下面开说问题: 项目中有一个上传文件的功能,好不容易把上传功能写完了,在本地运行没有问题,以为文件没有问题了,然后就开始把项目部署到服务器上运行,但是部署到服务器之后,其他的功能都没有问题,但是提交带有文件上传的表单的时候就一直报错,报什么错呢? No result defined for action 最恶心的错误之一有木有?只有这样的一句错误,别的什么都没有,怎么下手解决都不知道,然后开始上网去搜解决办法,以前也遇到过类

java基础篇---文件上传(commons-FileUpload组件)

上一篇讲解了smartupload组件上传,那么这一篇我们讲解commons-FileUpload组件上传 FileUpload是Apache组织(www.apache.org)提供的免费的上传组件,可以直接从Apache站点上下载(下载地址:http://commons.apache.org/fileupload/),本文使用的版本是1.2.1,但是FileUpload组件本身还依赖于commons组件,所以从Apache下载此组件的时候还需要连同commons组件的IO包一起下载(下载地址:

使用传统javaweb进行文件上传

使用传统文件上传方式 1.配置依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <spring.ve

使用springmvc实现文件上传

该配置在javaweb上传文件篇中的基础上进行配置:https://www.cnblogs.com/flypig666/p/11745182.html 1.配置文件解析器,在springmvc.xml中进行配置 <!-- 配置文件解析器,id必须为multipartResolver--> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsM

spring实现文件上传

spring-文件上传 文件上传的回顾 导入文件上传的jar包 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:

atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7

1. 实现原理 1 2. 大的文件上传原理::使用applet 1 3. 新的bp 2 1. 性能提升---分割小文件上传,避免一次使用内存使用过大的 2 2. Uuid还是原来文件名称:: 2 3. 监听器频繁地被调用 2 4. 结合wz easyui 2 4. 选型 2 5. Uploadify::yash js+flash 3 6. commons-fileupload:: 3 7. COS这个工具O'Reilly公司 3 8. 大的文件上传组件总结 3 5. 林吧实现ui Ajax+jq

HTML5文件上传组件美化jQuery插件

简要教程 jQuery.filer是一款简单的HTML5文件上传组件美化jQuery插件.它能够完成单文件和多文件的上传,支持文件的拖拽,支持不同的文件格式校验,支持缩略图和图标等,是一款非常实用的文件上传插件.它的特点还有: 对文件上传File Input组件进行美化 支持多文件上传 支持校验文件:大小,扩展名等 支持创建文件的缩略图 每种类型的文件可以自定义图标 可以为缩略图,图标和input自定义模板和主题 可以移出已选择的文件 可以从剪切板粘贴图片 所有的图标在一个字体文件中 支持文件拖

Java基础——Servlet(八)文件上传下载

一.简单的文件上传常见的组件Smartupload , Apache 的 commons FileUploadSmartupload上传的步骤: 1.初始化上传上下文 2.准备上传 3.保存文件 <% if(request.getParameter("flag")!=null){ SmartUpload su=new SmartUpload(); su.initialize(pageContext); su.upload(); su.save("/upload_file