JAVA中几种上传方法介绍、比较

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java中几种上传方法介绍、比较

1引言

一个网站总是不可避免的要和用户进行信息的交互,能直接使用

request.getParameter()来取得。至于所使用的方法有很多种,比如:jspsmart 公司的jspsmartupload组件,O`Rrilly公司的cos组件,Jakarta Apache公司的commonsFileUpload组件,JavaZoom的uploadbean组件,还有Struts组件中自带的org.apache.struts.upload类工具等等。下面就针对其中的三种解决方案(jspsmartupload、O`Reilly-cos、struts.upload)做一个简单的介绍和对比。2O`Rrilly-Cos

Cos组件是O`Rrilly公司开发的,该组件免费,不定期增加新功能,开源。

图1O`Rrilly-Cos

在Cos组件中,MultipartRequest类主要负责文件上传的处理。MultipartRequest有8个构造函数:

1.Public MultipartRequest(HttpServletRequest request,String saveDirectory,)throws IOException

2.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize)throws IOException

3.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize,FileRenamePolicy policy)throws IOException倘若是从窗体传送一般的简单输入类型(例如:text、password、radio、checkbox、select等等)的信息到服务器端时,只要使用

application/x-www-form-urlencoded的编码方式用session传递就可以了。但是当涉及到和用户之间的文件交换(包括上传和下载)时,就不是那么简单了。在上传文件到服务器时,必须要使用multipart/form-data的编码方式,并且不

4.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize,String encoding)throws IOException

5.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize,String encoding,FileRenamePolicy policy) throws IOException

6.Public MultipartRequest(HttpServletRequest request,String saveDirectory,String encoding)throws IOException

7.Public MultipartRequest(HttpServletRequest request,String saveDirectory)throws IOException

8.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize)throws IOException

前6种构造函数都是用来专门处理HTTP协议的,saveDirectory是上传文

件要存储在服务器端的目录名称;maxPostSize是用来限制用户上传文件大小的,若超过maxPostSzie,会产生IOException,默认上传文件大小是1MB;encoding 可以设定用何种编码方式来上传文件名称,可以解决中文问题。

MultipartRequest类工具有8种方法,利用这些方法,我们可以取得请求

的相关信息:

Public Enumeration getParameterNames()

可以取得请求参数的名称

public String getParameter(String name)

此方法传回参数为name的值

public String[]getParameterValues(String name)

此方法主要用在取得当一指定参数具有多个值时,它会传回String的数组public Enumeration getFileName()

传回所有文件输入类型的名称

public String getFilesystemNames(String name)

用此方法得到上传文件的真正的文件名,这里的name指文件输入类型的名称

public String getContentType(String name)

此方法得到上传文件的内容类型

public File getFile(String name)

此方法得到一个文件对象,代表储存在服务器上的name文件

public String getOriginalFileName(String name)

返回文件在修改政策有效之前的文件名

3jspsmartUpload

Jspsmartupload组件是由jspsmart公司开发的,安装好它的组件以后,就可以处理文件上传及下载的问题。该组件简单好用,免费,但是源码不公开。

Jspsmartupload Overview:

Free免费的

upload1or more files to the server可上传1个或多个文件

upload to a database上传文件到数据库

control the upload file by file可以一列一列的(一个个)控制上传manage mixed forms files+form fields可以管理表格文件和表格域download a file可以实现文件下载

download a database field可以从数据库中下载

restrict file size,extension etc可以限制上传文件的尺寸和类型MacBinary support MckBinary的支持

Platform:Apache,NT,Unix,Linux,IIS可以在多种平台上运行

Database:MySQL,Oracle……支持多种数据库(最支持MySQL)

整个jspsmartupload压缩包113K,包括有范例、API说明和编译好的class 文件,调用这些class文件就可以实习文件的上传下载功能。

图2jspsmartUpoad

Jspsmartupload能实现比O`Rrilly-Cos更多的方法,比如有:

1.public int getSize()方法得到上传文件大小的总和

2.public void setDeniedFilesList(String deniedFilesList)方法设定

用户不可上传的类型

相关文档
最新文档