<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page isELIgnored="false" %> <%@ include file="../../../WEB-INF/jsp/common/inculde/cdn.jsp" %> <!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" type="text/css" href="<%=cdn%>/demo_utils/jsp/uploadify/css/uploadify.css"> <script type="text/javascript" src="<%=cdn%>/demo_utils/jsp/uploadify/js/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="<%=cdn%>/demo_utils/jsp/uploadify/js/jquery.uploadify.js"></script> <script type="text/javascript" src="<%=cdn%>/demo_utils/jsp/uploadify/js/jquery.uploadify.min.js"></script> <script type="text/javascript"> $(function () { //setTimeout 解决chrome 下浏览器崩溃的问题 setTimeout(function(){ $('#uploadify').uploadify( { uploader: '<%=cdn%>/uploadify/!uploadFiles.action', swf: '<%=cdn%>/demo_utils/jsp/uploadify/js/uploadify.swf', cancelImg: "<%=cdn%>/demo_utils/jsp/uploadify/img/uploadify-cancel.png", width: 60, // 按钮的宽度 height: 23, // 按钮的高度 buttonText: "上传", // 按钮上的文字 buttonCursor: 'hand', // 按钮的鼠标图标 fileObjName: 'uploadify', // 上传参数名称 后台<span style="color:#ff0000;">action里面的属性uploadify</span> // 两个配套使用 fileTypeExts: "*.*", // 扩展名 fileTypeDesc: "请选择 jpg png txt 文件", // 文件说明 auto: false, // 选择之后,自动开始上传 multi: true, // 是否支持同时上传多个文件 queueSizeLimit: 5 // 允许多文件上传的时候,同时上传文件的个数 }); },10) }); </script> </head> <body> <input type="file" name="uploadify" id="uploadify" /> <a href="javascript:$('#uploadify').uploadify('cancel')">清除第一个文件</a> <a href="javascript:$('#uploadify').uploadify('cancel', '*')">清除所有文件</a> <a href="javascript:$('#uploadify').uploadify('upload', '*')">上传所有文件</a> </body> </html>
package com.company.core.upload.action; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.struts2.ServletActionContext; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.InterceptorRef; import org.apache.struts2.convention.annotation.InterceptorRefs; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import com.company.core.utils.StringUtils; import com.company.core.action.BaseAction; import com.opensymphony.xwork2.ModelDriven; /** * 上传action * @author winder * 2014-12-03 */ @Namespace("/uploadify") @Action("") @ParentPackage("cc") //@Auth(enalbe=Roles.MANAGER) @InterceptorRefs({ @InterceptorRef("defaultStack") }) public class UploadifyAction extends BaseAction implements ModelDriven { private File uploadify; private String uploadifyFileName; private static final int BUFFER_SIZE = 16 * 1024; public void uploadFiles() throws IOException{ String s = File.separator; String path = ServletActionContext.getServletContext().getRealPath("/"); String savePath = path + "demo_utils"+s+"jsp"+s+"uploadify"+s+"uploads"; //上传完后文件存放位置 String newsuffix = ""; String uuid = StringUtils.getUUID(); if((uploadifyFileName != null)&&(uploadifyFileName.length()>0)) { int dot = uploadifyFileName.lastIndexOf("."); if((dot >-1) && (dot < (uploadifyFileName.length() - 1))) { newsuffix = uploadifyFileName.substring(dot + 1); } } FileInputStream fis = new FileInputStream(uploadify); FileOutputStream fos = new FileOutputStream(savePath+"/"+ uuid + "." + newsuffix); copy(fis, fos); fos.flush(); fos.close(); fis.close(); } /** * 拷贝文件 * @param src xx * @param dst xx */ public void copy(FileInputStream fis, FileOutputStream fos) { try { InputStream in = null; OutputStream out = null; try { in = new BufferedInputStream(fis,BUFFER_SIZE); out = new BufferedOutputStream(fos,BUFFER_SIZE); byte[] buffer = new byte[BUFFER_SIZE]; while (in.read(buffer) > 0) { out.write(buffer); } } finally { if (null != in) { in.close(); } if (null != out) { out.close(); } } } catch (Exception e) { e.printStackTrace(); } } public File getUploadify() { return uploadify; } public void setUploadify(File uploadify) { this.uploadify = uploadify; } public String getUploadifyFileName() { return uploadifyFileName; } public void setUploadifyFileName(String uploadifyFileName) { this.uploadifyFileName = uploadifyFileName; } public Object getModel() { // TODO Auto-generated method stub return null; } }
相关推荐
在Struts2中集成Uploadify3.2.1可以让用户实现文件上传功能,并且带有进度条显示,增强了用户体验。Uploadify是一个JavaScript库,它利用Flash技术实现异步文件上传,并提供了自定义的进度条显示。 要实现"struts2...
2. **进度条显示**:在上传过程中,可以显示每个文件的上传进度,提升用户体验。 3. **错误处理**:可以自定义错误提示,比如文件大小超过限制、文件类型不允许等。 4. **自定义样式**:Uploadify提供了丰富的CSS...
其中,`swf`是Uploadify的SWF文件,`uploader`是Struts2 Action的URL,`onUploadProgress`回调函数用于更新上传进度条。 4. **文件存储**: 在服务器端,Action的执行方法接收到文件后,需要将其保存到服务器的...
2. **进度条显示**:在上传过程中,Uploadify能够实时显示文件上传的进度,让用户了解文件上传的状态。 3. **多文件选择**:用户可以一次性选择多个文件进行上传,提高了上传效率。 4. **错误处理**:当上传过程中...
以上就是Struts2结合jQuery.uploadify实现文件上传的基本流程。实际应用中,可能还需要考虑其他因素,如安全性(防止文件覆盖、XSS攻击等)、性能优化(批量上传、分片上传等)等。通过熟练掌握这些知识点,可以构建...
通过以上步骤,你就能在Struts2环境中利用jQuery Uploadify实现一个功能完善的文件上传组件,其中包括下载进度条的功能。这个过程不仅提升了用户体验,也展示了现代Web开发中动态交互设计的魅力。
Struts2 jQuery Uploadify是一个整合了Struts2框架与jQuery Uploadify插件的示例项目,主要用于实现文件上传的功能。这个简单的demo展示了如何在Struts2应用中集成jQuery Uploadify,以便提供用户友好的、多文件异步...
在本篇文章中,我们将深入探讨如何结合Struts2和jQuery的uploadify插件来实现文件上传功能,这在现代Web应用程序中是非常常见的需求。 首先,Struts2是一个基于MVC(Model-View-Controller)架构的开源Java框架,它...
将uploadify与Struts2结合,可以创建高效、用户友好的文件上传系统。以下是对这个工程实例的详细说明。 首先,`uploadify`插件提供了异步上传的功能,用户可以选择多个文件并一次性上传,无需等待每个文件完全上传...
在本文中,我们将深入探讨如何在Java环境下,结合Struts2框架和jQuery的uploadify插件实现文件上传功能,特别是解决中文乱码问题。这个功能对于任何需要用户交互式上传内容的Web应用都是至关重要的。 首先,jQuery ...
Uploadify是基于jQuery的一个插件,它允许用户通过异步方式上传文件,提供了丰富的自定义选项和用户体验优化功能,如进度条显示、多文件上传、预览等。 Struts2是一个强大的Java Web框架,基于MVC(Model-View-...
总之,Struts2和jQuery Uploadify的结合是Web开发中处理文件上传的一种强大解决方案。通过合理的配置和定制,可以满足各种复杂的文件上传需求,为用户提供流畅的交互体验。在实际项目中,务必注意文件安全问题,如...
1. **Uploadify**:Uploadify是一款基于jQuery的文件上传插件,它提供了直观、用户友好的界面,支持多文件选择、进度条显示和自定义样式等特性。在本示例中,Uploadify用于处理用户选择的文件,将其转化为可以发送到...
Struts2与Uploadify结合,可以轻松处理前端提交的多文件上传请求,并将这些文件保存在服务器上。 实现多文件上传的步骤如下: 1. **前端配置**:在HTML页面中,我们需要引入Uploadify的JavaScript和CSS文件,然后...
5. **Uploadify上传插件**:Uploadify是一个基于jQuery的文件上传插件,它支持多文件选择、进度条显示和错误处理等功能。在这个项目中,Uploadify可能被用来优化文件上传体验,使用户能够看到上传进度并实时获取反馈...