WEB文件上传可能是网站建设中最常用的功能之一,我在项目开发中几乎都需要实现文件上传功能.前段时间自己搜集了一些上传组件.这篇文章中将介绍这些组件的使用方法,并且比较各自的优劣.
一,smartupload组件.
我想只要做个文件上传的朋友都知道这个组件,我认识的人中使用最多的也是它!我刚到公司的时候,公司也使用的smartupload,这个组件上传相对较小的文件时是个不错的选择.下面给出个使用的例子:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.jspsmart.upload.*" %>
<%
//实例化上载bean
SmartUpload mySmartUpload=new SmartUpload();
//初始化
mySmartUpload.initialize(pageContext);
//设置上载的最大值,注意:如果这里设置过大会出现问题!
mySmartUpload.setMaxFileSize(500 * 1024*1024);
//上载文件
mySmartUpload.upload();
//循环取得所有上载的文件
for (int i=0;i<mysmartupload.getfiles().getcount();i++){ 取得上载的文件="" com.jspsmart.upload.file="" myfile="mySmartUpload.getFiles().getFile(i);" if="" (!myfile.ismissing())="" {="" 取得上载的文件的文件名="" string="" myfilename="myFile.getFileName();" 取得不带后缀的文件名="" string="" suffix="myFileName.substring(0,myFileName.lastIndexOf('.'));" 取得后缀名="" string="" ext="mySmartUpload.getFiles().getFile(0).getFileExt();" 取得文件的大小="" int="" filesize="myFile.getSize();" 保存路径="" string="" aa="getServletContext().getRealPath("/")+"jsp\\";" string="" trace="aa+myFileName;" 取得别的参数="" string="" explain="(String)mySmartUpload.getRequest().getParameter("text");" string="" send="(String)mySmartUpload.getRequest().getParameter("send");" 将文件保存在服务器端="" myfile.saveas(trace,mysmartupload.save_physical);="" %="">
但是使用smartupload上传过大文件,或者多文件的时候可能出现CPU或内存占用过高的问题.并且:只有重新启动容器才能恢复正常!这正是我最后我放弃了使用smartupload的原因.
二,commons-fileupload组件
这个组件是我现在使用的组件,下载地址:http://jakarta.apache.org/site/downloads/downloads_commons-fileupload.cgi,包内包含了API文档.
使用该组件的例子:
<%@ page language=“java”contentType=“text/html;charset=GBK”%>
<%@ page import=“java.util.*”%>
<%@ page import=“org.apache.commons.fileupload.*”%>
<html>
<head>
文件上传
</head>
<%
DiskFileUpload fu = new DiskFileUpload();
// 设置允许用户上传文件大小,单位:字节
fu.setSizeMax(10000000);
// 设置最多只允许在内存中存储的数据,单位:字节
fu.setSizeThreshold(4096);
// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
fu.setRepositoryPath(“D:\\Tomcat5\\TEMP”);
//开始读取上传信息
List fileItems = fu.parseRequest(request);
// 依次处理每个上传的文件
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
//忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
String name = item.getName();
item.write(“D:\\UploadTest\\”+ name);
}
}
%>
从上面的程序可以看出,该组件上传时候可以用了一个地方来存储临时文件,呆上传完成后直接把文件写过去.这样就不会占用过多的内存!而且该组件上传大文件的时候效率也不低哦!
在这两个的对比选择中,我选择了后者,因为我做的项目中经常上传大于10M的文件,用前者的时候服务器几乎被整崩溃.
不过,现在我已经不用这两种组件了,因为http方式传文件效率始终很低,我们现在使用的是web方式实现的ftp文件上传,我将在下篇文章中写我在项目中是如何实现的.
分享到:
相关推荐
SmartUpload 组件 1、使用简单。在JSP文件中仅仅书写三五行JAVA代码就可以搞定文件的上传或下载,方便。 2、能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括...
最近实验室做了一个项目,使用jspsmartupload来实现的文件的上传下载,原来在windows平台运行的挺好,但是后来系统移植到linux平台上,结果在上传或下载的文件名中有中文时就会出现乱码。后来查了网上一些人的解决...
**JSpsmartupload组件**是一个基于Java的上传文件解决方案,主要应用于JSP(Java Server Pages)环境中。这个组件提供了一种简单且强大的方式来处理用户通过网页上传的文件。在标题和描述中提到的,该组件的核心是用...
- 初始化SmartUpload对象:`SmartUpload smartUpload = new SmartUpload();` - 开始上传:`smartUpload.initialize(request, response);` - 接收并处理文件:`smartUpload.save("uploadPath");` 10. **学习资源*...
"SmartUpload"是一个专用于Java Web开发中的文件上传组件,主要针对JSP(JavaServer Pages)环境设计。在Web应用中,文件上传是一项常见的需求,例如用户上传个人照片、提交文档等。SmartUpload通过简化API,让...
2. **初始化SmartUpload对象**:在Servlet的`doPost`方法中,创建`SmartUpload`对象,如`SmartUpload smartUpload = new SmartUpload();` 3. **设置上传参数**:可以调用`smartUpload`对象的相关方法来设置上传限制...
`jspSmartUpload`是一个非常实用的库,它简化了处理文件上传和下载的复杂性。本文将深入探讨如何使用`jspSmartUpload`来实现这两个功能,并详细解释其工作原理和相关知识点。 首先,`jspSmartUpload`是一个基于Java...
SmartUpload是一款强大的Java上传组件,它为Web应用提供了一种高效、便捷的文件上传解决方案。在Web开发中,文件上传功能是不可或缺的一部分,无论是用户上传个人资料、分享图片,还是企业内部的数据交换,都可能...
《SmartUpload:高效便捷的文件上传与下载组件详解》 在Web应用开发中,文件上传与下载功能是不可或缺的一部分。为了简化这一过程,许多开发者选择了使用第三方组件,其中`SmartUpload`就是一个广受好评的选择。`...
- 初始化:在Servlet或JSP页面中,创建`SmartUpload`对象,如`SmartUpload smartUpload = new SmartUpload();` - 配置:设置上传文件的大小限制、类型限制等,如`smartUpload.setMaxFileSize(1024*1024*5);`限制...
SmartUpload是Java中一个常用的文件上传组件,它简化了在Web应用中处理文件上传的复杂性。本实例将深入解析SmartUpload的使用方法,并通过注解来解释关键步骤,以帮助初学者更好地理解和应用。 首先,我们需要理解...
**JSpsmartupload简介** JSpsmartupload是一个用于Java Web应用中的上传组件,它使得在JSP页面上处理文件上传变得简单。这个组件基于Servlet API,可以方便地集成到任何Servlet容器,如Tomcat、Jetty等,并且支持多...
在本文中,我们将探讨如何使用SmartUpload组件来实现文件上传功能。SmartUpload是一个免费的全功能文件上传下载组件,特别适合在JSP应用中集成以处理文件上传和下载操作。以下是关于SmartUpload的一些关键特性及其...
《SmartUpload 源码解析与使用指南》 SmartUpload 是一个强大且易于使用的Java上传组件,它提供了处理文件上传的全面解决方案。该组件的主要功能是处理用户通过表单提交的多个文件,允许开发者轻松地将文件上传到...
Struts和SmartUpload都是在Java Web开发中处理文件上传功能的常见工具,它们各自有其特点和适用场景。下面将详细介绍这两个技术,并对比它们的使用方法。 **Struts上传** Struts是Apache软件基金会下的一个开源...