admin 管理员组

文章数量: 887021


2024年2月24日发(作者:数不清的数怎么组词)

Jquery使用插件实现多文件同时上传的功能

需要用到的相关jar包和第三方插件分别为:,,,

引入相关的js和jar文件即可开始上传的操作:

//此处的上传没有判断文件上传的类型,因为使用了jquery的插件,所以此处的上传类型在前台的页面做控制

final long MAX_SIZE = 3 * 1024 * 1024;// 设置上传文件最大为 3M

tentType("text/html");

// 设置字符编码为UTF-8, 这样支持汉字显示

racterEncoding("GBK");

// 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload

DiskFileItemFactory dfif = new DiskFileItemFactory();

eThreshold(4096);// 设置上传文件时用于临时存放文件的内存大小,这里是4K.多于的部分将临时存在硬盘

ository(new File("c:"));// 设置存放临时文件的目录,web根目录下的ImagesUploadTemp目录

// 用以上工厂实例化上传组件

ServletFileUpload sfu = new ServletFileUpload(dfif);

// 设置最大上传尺寸

eMax(MAX_SIZE);

// 从request得到 所有 上传域的列表

List fileList = null;

try {

fileList = equest(request);

} catch (FileUploadException e) {// 处理文件尺寸过大异常

if (e instanceof SizeLimitExceededException) {

n("文件尺寸超过规定大小:" + MAX_SIZE + "字节

");

n("返回");

return;

}

tackTrace();

}

// 没有文件上传

if (fileList == null || () == 0) {

n("请选择上传文件

");

n("返回");

return;

}

// 得到所有上传的文件

Iterator fileItr = or();

// 循环处理所有文件

while (t()) {

FileItem fileItem = null;

String fpath = "";

long size = 0;

// 得到当前文件

fileItem = (FileItem) ();

if (Field()) {

//如果不是上传域,而是普通的表单域(如:

type="text|radio">)则在此进行处理

}

// 忽略简单form字段而不是上传域的文件域(等)

if (fileItem == null || Field()) {

continue;

}

// 得到文件的完整路径

fpath = e();

// 得到文件的大小

size = e();

if ("".equals(fpath) || size == 0) {

n("请选择上传文件

");

n("返回");

return;

}

// 得到去除路径的文件名

String t_name = ing(dexOf("") + 1);

// 得到文件的扩展名(无扩展名时将得到全名)

String t_ext = t_ing(t_dexOf(".") + 1);

// 根据系统时间生成上传后保存的文件名

//String prefix = f(now);

// 保存的最终文件完整路径,保存在web根目录下的ImagesUploaded目录下

String u_name = lPath("/") + "uploaded" + t_name

+ "." + t_ext;

File file = new File(u_name);

(file);

n("文件上传成功. 已保存为: " + t_name + "." + t_ext

+ "   文件大小: " + size + "字节

");

n("继续上传");

}

PS:如果你上传文件时需要使用当前时间的毫秒数来做上传文件的文件名,那么请不要使用此种方式上传,因为该方式可以让用户通过一个文本域同时上传多个文件,而多个文件是同时进行上传操作的,所以在同一时间内最后一个上传的文件很可能会将前边的文件覆盖掉,造成文件的丢失

相应的上传页面代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"

pageEncoding="GBK"%>

"/TR/html4/">

JQeury多文件上传测试

enctype="multipart/form-data">

maxlength="3"/>


本文标签: 上传 文件 插件 使用 设置