前一阵子,脑袋突然冒出在Java web里,批量上传文件的问题。struts原本有控件可以一次上传多个文件,但是需要一个一个选择文件,用户体检肯定不用说了。要是能够类似QQ图像上传不是挺好的。
于是,找了下资料。看到SWFUpload可以支持批量上传。于是动手感受下。可是被一个问题卡住了,SWFUpload有默认的错误信息,可是要自定义不知道该怎么办了。比如,对一个用户的上传总容量有控制,超过这个总容量就不能上传文件。这个一般都是要在后台代码里处理的。半天没找到相关资料,自己摸索下,终于找到一个方法,不知道是好是坏,先将就用了。
不知不觉说了这么多废话。直接点吧。
首先,自定义错误:在SWFUpload.js里错误代码列表里增加自定义错误代码UPLOAD_LIMIT_CAPACITY : -300。
SWFUpload.UPLOAD_ERROR = {
HTTP_ERROR : -200,
MISSING_UPLOAD_URL : -210,
IO_ERROR : -220,
SECURITY_ERROR : -230,
UPLOAD_LIMIT_EXCEEDED : -240,
UPLOAD_FAILED : -250,
SPECIFIED_FILE_ID_NOT_FOUND : -260,
FILE_VALIDATION_FAILED : -270,
FILE_CANCELLED : -280,
UPLOAD_STOPPED : -290,
UPLOAD_LIMIT_CAPACITY : -300
};
接下来,在uploadSuccess 函数里增加调用上传文件错误的方法
SWFUpload.prototype.uploadSuccess = function (file, serverData, responseReceived) {
if(serverData == -1000){
this.uploadError(file, -300, "图片空间已满");
return;
}
file = this.unescapeFilePostParams(file);
this.queueEvent("upload_success_handler", [file, serverData, responseReceived]);
};
再接下来,当然就是在uploadError函数里,添加错误信息了。
case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_CAPACITY:
imageName = "<font color='red'>图片空间已满!</font>";
break;
至此,准备工作做好。就等被触发了。看官应该知道是在action里传-1000这个值到前台了。
if (isNotcapacity()) {//判断是否空间已满
HttpServletResponse response = getResponse();
response.setContentType("text/html; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
out.println("-1000");
out.flush();
out.close();
return;
}
OK,检查下是不是可行了吧!
分享到:
相关推荐
综上所述,SwfUpload与Struts2的整合主要涉及前端的SwfUpload配置和后端的Struts2 Action处理。通过这种方式,我们可以构建出一个高效的文件上传系统,为用户提供流畅的上传体验。在测试过程中,可以使用`test8`这样...
这个名为 "SWFupload_struts_1.rar" 的压缩包文件显然是为了整合SWFUpload与Struts 1框架而准备的资源。SWFUpload与Struts 1的结合可以提供更友好的用户界面和更高效的文件上传体验。 在Struts 1框架中,通常需要...
本教程将详细讲解如何利用SWFUpload与Struts2框架来实现多文件上传的示例。 首先,让我们了解SWFUpload。SWFUpload是一款开源的Flash上传组件,它允许用户在不离开当前页面的情况下上传多个文件。通过在浏览器上...
【SWFUpload与Struts1整合实现大文件上传与进度条】 在Web开发中,用户经常需要上传大文件,如视频、音频或大型文档。传统的HTML表单上传方式不支持断点续传,且无法显示文件上传进度,用户体验较差。为解决这些...
**SWFUpload与Struts整合应用详解** 在Web开发中,文件上传功能是常见的需求,尤其是在用户需要提交图片、文档等非文本信息时。SWFUpload是一个强大的JavaScript库,它利用Flash技术实现了在浏览器端的多文件上传...
设置SwfUpload的配置参数,如上传URL(指向Struts2 Action的URL)、文件类型限制、上传大小限制等。同时,利用其提供的事件监听器来更新进度条和处理上传结果。 3. **处理上传进度**:SwfUpload会触发一系列事件,...
**三、SWFUpload与Struts2整合步骤** 1. **添加依赖**:首先,需要在项目中引入SWFUpload的JavaScript库和Flash对象,以及Struts2的相关依赖。 2. **配置SWFUpload**:在HTML页面中,通过JavaScript调用SWFUpload...
要将Struts与SwfUpload整合,我们需要做以下几步: 1. **集成SwfUpload**:首先在项目中引入SwfUpload的JavaScript和Flash库。在HTML页面中,通过JavaScript设置SwfUpload的配置,如上传URL、文件类型限制等,并将...
4. **后端处理**:Struts2 Action接收到SwfUpload上传的文件后,需要处理文件接收、保存到服务器、返回响应信息等任务。这通常涉及到文件流操作、文件存储路径管理以及可能出现的异常处理。 5. **配置Struts2**:在...
“整合了struts”这一信息表明,这个批量上传功能是与Struts框架集成的。Struts是一个开源的MVC(Model-View-Controller)框架,用于构建基于Java的Web应用程序。将SWFUpload与Struts结合,可以方便地在Struts的动作...
总结来说,这个资源提供了一个学习如何将SWFUpload与Struts2整合以实现优雅文件上传体验的实例。开发者可以通过研究这两个项目,了解前端文件上传组件与后端框架的交互,提升自己的Web开发技能。在实际应用中,可以...
在整合SWFUpload与Struts1时,主要涉及以下几个步骤: 1. **引入依赖**:首先,你需要将SWFUpload的JavaScript和Flash文件引入到你的Web应用中,通常是放在项目的JS或Flash目录下,并在HTML页面中正确引用。 2. **...
7. **Struts1框架集成**:在Struts1中,需要配置Action来接收文件,处理文件上传的请求,并返回结果。 综上所述,这个话题主要涵盖了前端文件上传技术、后端文件处理逻辑以及如何在Java的Struts1框架中集成这一功能...