首页 > 编程 > Java > 正文

java使用smartupload组件实现文件上传的方法

2019-11-02 15:50:57
字体:
来源:转载
供稿:网友

 这篇文章主要介绍了java使用smartupload组件实现文件上传的方法,对比分析了使用组件与不使用组件实现文件上传的区别,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了java使用smartupload组件实现文件上传的方法。分享给大家供大家参考。具体分析如下:

文件上传几乎是所有网站都具有的功能,用户可以将文件上传到服务器的指定文件夹中,也可以保存在数据库中,这里主要说明smartupload组件上传。

在讲解smartupload上传前,我们先来看看不使用组件是怎么完成上传的原理的?

废话不多说直接上代码:

代码如下:import java.io.*;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class FileUploadTools {
private HttpServletRequest request = null; // 取得HttpServletRequest对象
private List<FileItem> items = null; // 保存全部的上传内容
private Map<String, List<String>> params = new HashMap<String, List<String>>(); // 保存所有的参数
private Map<String, FileItem> files = new HashMap<String, FileItem>();
private int maxSize = 3145728; // 默认的上传文件大小为3MB,3 * 1024 * 1024
public FileUploadTools(HttpServletRequest request, int maxSize,
String tempDir) throws Exception { // 传递request对象、最大上传限制、临时保存目录
this.request = request; // 接收request对象
DiskFileItemFactory factory = new DiskFileItemFactory(); // 创建磁盘工厂
if (tempDir != null) { // 判断是否需要进行临时上传目录
factory.setRepository(new File(tempDir)); // 设置临时文件保存目录
}
ServletFileUpload upload = new ServletFileUpload(factory); // 创建处理工具
if (maxSize > 0) { // 如果给的上传大小限制大于0,则使用新的设置
this.maxSize = maxSize;
}
upload.setFileSizeMax(this.maxSize); // 设置最大上传大小为3MB,3 * 1024 * 1024
try {
this.items = upload.parseRequest(request);// 接收全部内容
} catch (FileUploadException e) {
throw e; // 向上抛出异常
}
this.init(); // 进行初始化操作
}
private void init() { // 初始化参数,区分普通参数或上传文件
Iterator<FileItem> iter = this.items.iterator();
IPTimeStamp its = new IPTimeStamp(this.request.getRemoteAddr()) ;
while (iter.hasNext()) { // 依次取出每一个上传项
FileItem item = iter.next(); // 取出每一个上传的文件
if (item.isFormField()) { // 判断是否是普通的文本参数
String name = item.getFieldName(); // 取得表单的名字
String value = item.getString(); // 取得表单的内容
List<String> temp = null; // 保存内容
if (this.params.containsKey(name)) { // 判断内容是否已经存放
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表