时间:2022-10-29 10:35:15
摘要:文件的上传和下载在网络应用中非常普遍,应用各种文件上传与下载组件来实现可以简化操作、节约项目开发时间。介绍了jspSmartUpload、commons-fileUpload上传组件,Struts文件上传,Spring文件上传技术,及组件下载、输出流方式下载技术。
关键词:上传;下载;组件;类;对象
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)12-2776-03
Upload and Download Technology in Java Web Development
YE Qian-wen
(Sanshui Technical Secondary School and Vestibule School, Foshan 528100, China)
Abstract: Upload and download files are very common in network applications. The application of a variety of file upload and download components can simplify operations, save project development time. Introduced jspSmartUpload, commons-fileUploadcomponents, Struts and the Spring file upload technology, component download, The output stream download technology.
Key words: upload; download; component; class; object
文件的上传和下载在网络应用中非常普遍,可以通过流来实现文件的上传与下载,但是这种方式较为麻烦。为了节省开发项目的时间、简化操作,可应用各种文件上传与下载组件来实现。这些组件对许多操作进行了封装,提供了各种接口和方法,在开发时只需调用这些方法,即可实现文件的上传与下载。
在众多文件上传组件中,比较流行的是jspSmartUpload与commons-fileUpload,这两种组件为文件的上传与下载提供了便利的方法。下面介绍Java Web开发中常用的上传与下载组件及技术
1 jspSmartUpload组件
jspSmartUpload是一个功能较全面的上传与下载组件,可从www.省略网站上下载。该组件有以下特点:
1)使用简单。jspSmartUpload组件对许多方法进行了封装,在web应用中只需要书写三五行代码就能完成文件上传下载操作。
2)有过滤功能。jspSmartUpload上传组件提供了获取全部上传文件的功能,例如获取文件名、文件大小、文件类型、扩展名等,并能对文件上传的大小、类型等做出限制,过滤掉不符合要求的文件。
3)下载方法灵活。使用jspSmartUpload组件可对Web服务器中任意目录下的文件进行下载。
2 commons-fileUpload组件
commons-fileUpload上传组件是Apache的一个开源项目,需要commons-io包的支持,在Apache的官方网站上均可下载。该组件使用方便,可以实现一个或多个文件的上传,同时能限制文件大小。与jspSmartUpload组件相比,commons-fileUpload对中文支持良好。基于上述优势,加之jspSmartUpload上传组件已经停止了开发,因此建议使用commons-fileUpload上传组件。通过com mons-fileUpload实现文件上传的基本步骤如下:
2.1创建DiskFileItemFactory对象
首先要创建DiskFileItemFactory对象,用于配置上传组件ServletFileUpload。代码如下:DiskFileItemFactory factory=new DiskFileItemFactory ( );
DiskFileItemFactory类提供了众多方法对上传文件进行设置,常用方法有:
1)public void setSizeThreshold(int sizeThreshold)
参数用于设置最大内存大小。Apache文件上传组件在解析上传数据中的每个字段内容时,需要临时保存解析出的数据,以便在后面进行数据的进一步处理(保存在磁盘特定位置或插入数据库)。因为Java虚拟机默认可以使用的内存空间是有限的,超出限制时将会抛出“java.lang.OutOfMemoryError”错误。如果上传的文件很大,例如800M的文件,在内存中将无法临时保存该文件内容,Apache文件上传组件转而采用临时文件来保存这些数据;但如果上传的文件很小,例如600个字节的文件,显然将其直接保存在内存中性能会更加好些。
2)public void setRepositoryPath (String repositoryPath)
参数用于设置临时目录,setRepositoryPath方法用于设置当上传文件尺寸大于setSizeThreshold方法设置的临界值时,将文件以临时文件形式保存在磁盘上的存放目录。有一个对应的获得临时文件夹的File getRepository()方法。
3)public File getRepository( )获取保存临时文件地址。
2.2创建ServletFileUpload对象
ServletFileUpload对象即上传文件的句柄。以DiskFileItemFactory对象为参数构造ServletFileUpload对象,代码为:
ServletFileUpload upload=new ServletFileUpload(factory);
ServletFileUpload类常用方法有:
1)boolean isMultipartContent(.