`
insertyou
  • 浏览: 905594 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

文件上传:SmartUpload和FileUpload

 
阅读更多


一、文件上传简介


文件上传在HTML中是以<input type="file">的形式出现的。

文件上传有两种选择:

(1)SmartUpload:以jar包形式出现,需要把他添加到classpath或tomcat的lib文件夹下。

(2)FileUpload:以jar包形式出现,需要把他添加到classpath或tomcat的lib文件夹下。

对于SmartUpload,现在使用的较多。


二、SmartUpload


1.一般代码流程


SmartUpload smart = new SmartUpload();

smart.initialize(pageContext);

smart.upload();

smart.save("file");

实现的功能是将上传到的文件保存在/file文件夹下,并以同名进行保存。


2.表单注意事项


文件上传规定:表单必须有enctype="multipart/form-data"这个属性;因此表单是以二进制数据上传的。


3.获取表单中其他普通控件的值


因为有了文件上传控件后,表单的其他控件传递数据不能通过普通的request.getParameter(),而需要smart.getRequest().getParameter();


4.自定义存储文件名称


String ext = smart.getFiles().getFile(0).getFileExt();

smart.getFiles().getFile(0).saveAs(this.getServletContext().getRealPath("/")+filename+"."+ext);

filename就是文件自定义名称,ext就是文件扩展名。


5.批量上传


for(int i=0;i<smart.getFiles().getCount();i++){

String ext = smart.getFiles().getFile( i ).getFileExt();

smart.getFiles().getFile( i ).saveAs(this.getServletContext().getRealPath("/")+filename+"."+ext);

}即可。

从以上看出,SmartUpload的代码量不会特别多,比较方便。


三、FileUpload


FileUpload是apache的commons项目的子项目,需要下载jar包,注意:还要把commons-io.jar也下下来,因为这两个包是相互关联的。


1.一般代码流程


DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setFileSizeMax(1024*1024);//设置上传文件的最大容量

List<FileItem>items = upload.parseRequest(request); //取得表单全部数据

含有文件上传控件的表单是不能区分一般控件和上传控件的,都作为FileItem;


2.区分一般控件数据和文件上传控件数据


通过item.isFormField()能够判断,如果返回true,则表示一般控件数据。


3.取得控件数据


item.getFieldName()返回域名称。

(1)如果是一般控件,则item.getString()即可。

(2)如果是文件上传控件,则包含一些方法

item.getName();取得上传文件的名称

item.getContentType();取得上传文件的mime类型

longitem.getSize();取得上传文件的大小

item.getInputStream();取得上传文件的输入流


4.保存文件


在SmartUpload中,只需要save函数即可,但是在FileUpload中,需要IO流。

InputStream input = item.getInputStream();

FileOutputStream output = new FileOutputStream("file.txt");

byte[] buf = new byte[1024];

int length = 0;

while((length=input.read(buf))!=-1){

output.write(buf,0,length);

}

input.close();

output.close();

即可。


5.取得文件后缀


String ext = item.getName().split("\\.")[1];

分享到:
评论

相关推荐

    Java上传的通用代码包括(jspsmartupload,fileupload)

    "Java上传的通用代码包括(jspsmartupload, fileupload)"这个标题提到的两个库——JSPSmartUpload和FileUpload,都是用于处理文件上传的Java库,它们为开发者提供了方便的API来实现这一功能。 1. **JSPSmartUpload**...

    commons.fileupload和jspSmartUpload文件上传和ExtJS前后台原代码

    1、利用org.apache.commons.fileupload编写的文件上传和下载的前台和后台代码,前台代码是Jsp,后台是用servlet处理,共2个例子,各有不同,比较使用; 2、有用jspSmartupload制作一个文件上传和下载的例子,其制作...

    java 文件上传(包括struts2文件上传,smartupload,基于apatch 的fileupload的文件上传)

    smartupload,基于apatch 的fileupload的文件上传):该文件包括文件上传的多个实例:有基于strtus2自带的文件上传实例、smartupload文件实例 和基于aptche自带的fileupload 的文件上传实例.

    smartupload/fileupload/cos三种常用下载组件

    SmartUpload和FileUpload适用于处理本地服务器的文件上传,而COS更适合于处理云端文件的存储与下载。根据项目需求,开发者可以选择合适的组件来满足用户的需求,比如,如果项目需要处理大量文件,并且希望将文件存储...

    三种纯jsp文件上传实例(cos,smartupload,fileupload)

    本人亲自使用cos,smartupload,fileupload做的文件上传得小例子,只用了基本功能,注释非常详细,一看就能学会。测试时请使用图片上传,以便达到最佳效果。转载请注明原作者名,请珍惜他人劳动成果。

    java 上传 SmartUpload&commons-fileupload

    SmartUpload是一个强大的Java上传组件,由Julien DROUET开发,它为JSP和Servlet提供了方便的文件上传功能。SmartUpload提供了一套完整的API,可以方便地处理多个文件上传,同时支持各种自定义设置,如上传文件大小...

    java组件SmartUpload和FileUpload实现文件上传功能

    Java 组件 SmartUpload 和 FileUpload 实现文件上传功能 本文主要介绍了 Java 组件 SmartUpload 和 FileUpload 实现文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 SmartUpload 上传组件 ...

    struts 上传 和 smartupload上传

    Struts和SmartUpload都是在Java Web开发中处理文件上传功能的常见工具,它们各自有其特点和适用场景。下面将详细介绍这两个技术,并对比它们的使用方法。 **Struts上传** Struts是Apache软件基金会下的一个开源...

    smartupload文件上传功能

    ### smartupload文件上传功能详解 #### 一、smartupload组件概览 ...总之,smartupload组件为Java Web应用提供了强大的文件上传功能,通过合理的配置和编码实践,可以轻松实现安全、高效的文件上传操作。

    commons-fileupload和smartupload实现文件上传

    在Java Web开发中,文件上传是一项常见的功能,Apache Commons FileUpload和Smart Upload是两个常用的文件上传组件。这里我们将深入探讨这两个库以及如何在实际项目中使用它们。 首先,Apache Commons FileUpload是...

    SmartUpload.jar和commons-fileupload-1.1.1.jar

    在这个场景中,"SmartUpload.jar" 和 "commons-fileupload-1.1.1.jar" 是两个关键的Java库,它们极大地简化了在JSP(JavaServer Pages)中实现文件上传的过程。 首先,我们来详细了解这两个库: 1. **SmartUpload....

    JspSmartUpload实现多文件上传

    **JspSmartUpload详解** 在Web开发中,文件上传功能是一项常见的需求,尤其是在用户需要提交包含图片、文档等附件的表单时。...但了解JspSmartUpload的工作原理和使用方法,对于理解文件上传的整个过程仍有很大帮助。

    commons-fileupload、smartupload

    "commons-fileupload"和"smartupload"是两个著名的Java库,专门处理JSP(JavaServer Pages)中的文件上传任务。 **commons-fileupload** 是Apache Commons项目的一部分,它为Servlet和Portlet提供了强大的文件上传...

    Smartupload_and_commons-fileupload.rar_smartupload

    "Smartupload_and_commons-fileupload.rar_smartupload"这个压缩包文件涉及了两个著名的Java文件上传库——SmartUpload和Apache Commons FileUpload的对比分析。这两个库都为Java开发者提供了方便的文件上传解决方案...

    jspSmartUpload上传下载

    JSP SmartUpload是由Eduardo Pires开发的一个开源组件,它基于Commons FileUpload库,提供了一套完整的API,使得在JSP页面上处理文件上传变得简单。SmartUpload提供了文件验证、错误处理和多文件上传等功能,极大地...

    实现上传与下载所需文件

    总结起来,SmartUpload和Commons FileUpload都是Java Web开发中实现文件上传功能的强大工具,选择哪个取决于项目的具体需求和开发者对库的熟悉程度。它们都提供了处理大文件、限制上传条件和控制文件存储路径等功能...

    commons.fileupload和jspSmartUpload文件上传前后台原代码

    利用org.apache.commons.fileupload编写的文件上传和下载的前台和后台代码,共两个例子,个有不同,费用使用。另有用jspSmartupload制作一个文件上传和下载的例子,其制作的例子能够上传到数据库中。

    jspsmartupload包和api说明

    然而,需要注意的是,由于这个组件已经较旧,可能不支持最新的Java和Servlet规范,所以在现代项目中可能需要考虑使用更现代化的文件上传库,如Apache Commons FileUpload或者Spring Boot的MultipartFile支持。

    JSP中用于文件处理的jspsmartupload包

    总的来说,jspsmartupload包是JSP开发中处理文件上传和下载的一个有力工具,它通过提供直观的API和JSP标签,帮助开发者快速实现相关功能,降低了文件操作的复杂度。然而,随着技术的发展,开发者在选择文件处理库时...

    jspsmartupload文件上传api+jar文件

    `jspsmartupload`是一个经典的Java Web文件上传组件,它在早期的Web开发中被广泛使用,尤其是在基于JSP和Servlet的应用中。这个组件提供了一种简单的方式来处理用户通过表单上传的文件,使得开发者无需深入理解HTTP...

Global site tag (gtag.js) - Google Analytics