一、文件上传简介
文件上传在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)"这个标题提到的两个库——JSPSmartUpload和FileUpload,都是用于处理文件上传的Java库,它们为开发者提供了方便的API来实现这一功能。 1. **JSPSmartUpload**...
1、利用org.apache.commons.fileupload编写的文件上传和下载的前台和后台代码,前台代码是Jsp,后台是用servlet处理,共2个例子,各有不同,比较使用; 2、有用jspSmartupload制作一个文件上传和下载的例子,其制作...
smartupload,基于apatch 的fileupload的文件上传):该文件包括文件上传的多个实例:有基于strtus2自带的文件上传实例、smartupload文件实例 和基于aptche自带的fileupload 的文件上传实例.
SmartUpload和FileUpload适用于处理本地服务器的文件上传,而COS更适合于处理云端文件的存储与下载。根据项目需求,开发者可以选择合适的组件来满足用户的需求,比如,如果项目需要处理大量文件,并且希望将文件存储...
本人亲自使用cos,smartupload,fileupload做的文件上传得小例子,只用了基本功能,注释非常详细,一看就能学会。测试时请使用图片上传,以便达到最佳效果。转载请注明原作者名,请珍惜他人劳动成果。
SmartUpload是一个强大的Java上传组件,由Julien DROUET开发,它为JSP和Servlet提供了方便的文件上传功能。SmartUpload提供了一套完整的API,可以方便地处理多个文件上传,同时支持各种自定义设置,如上传文件大小...
Java 组件 SmartUpload 和 FileUpload 实现文件上传功能 本文主要介绍了 Java 组件 SmartUpload 和 FileUpload 实现文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 SmartUpload 上传组件 ...
Struts和SmartUpload都是在Java Web开发中处理文件上传功能的常见工具,它们各自有其特点和适用场景。下面将详细介绍这两个技术,并对比它们的使用方法。 **Struts上传** Struts是Apache软件基金会下的一个开源...
### smartupload文件上传功能详解 #### 一、smartupload组件概览 ...总之,smartupload组件为Java Web应用提供了强大的文件上传功能,通过合理的配置和编码实践,可以轻松实现安全、高效的文件上传操作。
在Java Web开发中,文件上传是一项常见的功能,Apache Commons FileUpload和Smart Upload是两个常用的文件上传组件。这里我们将深入探讨这两个库以及如何在实际项目中使用它们。 首先,Apache Commons FileUpload是...
在这个场景中,"SmartUpload.jar" 和 "commons-fileupload-1.1.1.jar" 是两个关键的Java库,它们极大地简化了在JSP(JavaServer Pages)中实现文件上传的过程。 首先,我们来详细了解这两个库: 1. **SmartUpload....
**JspSmartUpload详解** 在Web开发中,文件上传功能是一项常见的需求,尤其是在用户需要提交包含图片、文档等附件的表单时。...但了解JspSmartUpload的工作原理和使用方法,对于理解文件上传的整个过程仍有很大帮助。
"commons-fileupload"和"smartupload"是两个著名的Java库,专门处理JSP(JavaServer Pages)中的文件上传任务。 **commons-fileupload** 是Apache Commons项目的一部分,它为Servlet和Portlet提供了强大的文件上传...
"Smartupload_and_commons-fileupload.rar_smartupload"这个压缩包文件涉及了两个著名的Java文件上传库——SmartUpload和Apache Commons FileUpload的对比分析。这两个库都为Java开发者提供了方便的文件上传解决方案...
JSP SmartUpload是由Eduardo Pires开发的一个开源组件,它基于Commons FileUpload库,提供了一套完整的API,使得在JSP页面上处理文件上传变得简单。SmartUpload提供了文件验证、错误处理和多文件上传等功能,极大地...
总结起来,SmartUpload和Commons FileUpload都是Java Web开发中实现文件上传功能的强大工具,选择哪个取决于项目的具体需求和开发者对库的熟悉程度。它们都提供了处理大文件、限制上传条件和控制文件存储路径等功能...
利用org.apache.commons.fileupload编写的文件上传和下载的前台和后台代码,共两个例子,个有不同,费用使用。另有用jspSmartupload制作一个文件上传和下载的例子,其制作的例子能够上传到数据库中。
然而,需要注意的是,由于这个组件已经较旧,可能不支持最新的Java和Servlet规范,所以在现代项目中可能需要考虑使用更现代化的文件上传库,如Apache Commons FileUpload或者Spring Boot的MultipartFile支持。
总的来说,jspsmartupload包是JSP开发中处理文件上传和下载的一个有力工具,它通过提供直观的API和JSP标签,帮助开发者快速实现相关功能,降低了文件操作的复杂度。然而,随着技术的发展,开发者在选择文件处理库时...
`jspsmartupload`是一个经典的Java Web文件上传组件,它在早期的Web开发中被广泛使用,尤其是在基于JSP和Servlet的应用中。这个组件提供了一种简单的方式来处理用户通过表单上传的文件,使得开发者无需深入理解HTTP...