uploadify.css 中需要更改图片路径,否则不显示"X"
index.jsp上传页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <link rel="stylesheet" type="text/css" href="uploadify/uploadify.css"> <script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="uploadify/jquery.uploadify.min.js"></script> <script type="text/javascript"> $(function(){ $("#uploadify").uploadify({ 'debug' : false, //开启调试 'auto' : false, //是否自动上传 'swf' : 'uploadify/uploadify.swf', //引入uploadify.swf 'uploader' : 'upload',//请求路径 'queueID' : 'fileQueue',//队列id,用来展示上传进度的 'width' : '75', //按钮宽度 'height' : '24', //按钮高度 'queueSizeLimit' : 3, //同时上传文件的个数 'fileTypeDesc' : '视频文件', //可选择文件类型说明 'fileTypeExts' : '*.jpg;*.gif', //控制可上传文件的扩展名 'multi' : true, //允许多文件上传 'buttonText' : '图片上传',//按钮上的文字 'fileSizeLimit' : '2MB', //设置单个文件大小限制 'fileObjName' : 'uploadify', //<input type="file"/>的name 'method' : 'post', 'removeCompleted' : true,//上传完成后自动删除队列 'onFallback':function(){ alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。"); }, 'onUploadSuccess' : function(file, data, response){//单个文件上传成功触发 //data就是action中返回来的数据 },'onQueueComplete' : function(){//所有文件上传完成 alert("文件上传成功!"); } }); }); </script> </head> <body> <input type="file" id="uploadify" name="uploadify"> <div id="fileQueue"></div> <a href="javascript:$('#uploadify').uploadify('upload','*')">开始上传</a> <a href="javascript:$('#uploadify').uploadify('cancel')">取消所有上传</a> </body> </html>
Action:
package com.struts2AndUploadify.action; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Date; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class UploadAction extends ActionSupport { private File uploadify;//上传文件file对象 private String uploadifyFileName;//上传文件名 private String uploadifyContentType;//上传文件类型 private String description;//上传文件的描述 private String uploadDir;//保存上传文件的目录,相对于web应用程序的根路径,在struts.xml文件中配置 public String execute(){ String newFileName=null; //得到当前时间开始流逝的毫秒数,将这个毫秒数作为上传文件新的文件名 long now=new Date().getTime(); //得到保存上传文件的真实路径 String path=ServletActionContext.getServletContext().getRealPath(uploadDir); File dir=new File(path); //如果这个目录不存在,则创建它 if (!dir.exists()) { dir.mkdir(); } int index=uploadifyFileName.lastIndexOf("."); //判断上传文件是否有扩展名,以时间戳作为新的文件名 if (index!=-1) { newFileName=now+uploadifyFileName.substring(index); }else { newFileName=Long.toString(now); } BufferedOutputStream bos=null; BufferedInputStream bis=null; //读取保存在临时目录下的上传文件,写入到新的文件中 try { FileInputStream fis=new FileInputStream(uploadify); bis=new BufferedInputStream(fis); FileOutputStream fos=new FileOutputStream(new File(dir,newFileName)); bos=new BufferedOutputStream(fos); byte [] buf=new byte[4096]; int len=-1; while ((len=bis.read(buf))!=-1) { bos.write(buf,0,len); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if (null!=bis) { try { bis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (null!=bos) { try { bos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return null; } 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 String getUploadifyContentType() { return uploadifyContentType; } public void setUploadifyContentType(String uploadifyContentType) { this.uploadifyContentType = uploadifyContentType; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getUploadDir() { return uploadDir; } public void setUploadDir(String uploadDir) { this.uploadDir = uploadDir; } }
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="default" namespace="/" extends="struts-default"> <action name="upload" class="com.struts2AndUploadify.action.UploadAction"> <param name="uploadDir">uploadFiles</param> </action> </package> </struts>
如有需要请下载附件:
相关推荐
在ASP.NET中,可以使用`System.IO.FileStream`类来读取和写入文件流,从而实现文件的流式上传。这种方式减少了内存占用,提高了系统性能。知识点: - 文件流操作:通过`FileStream`对象创建输入/输出流,实现文件的...
struts2 +jquey uploadify3 2 实现多文件上传 可以运行的myeclipse工程 绝对好用 访问方式http: 127 0 0 1:8080 Struts2Uploadify upload jsp uploadify 使用说明: <a href "javascript:$ "#file ...
1. **多文件上传**:Uploadify 支持用户同时选择并上传多个文件,这大大提高了文件上传的效率,避免了传统的一次只能上传一个文件的繁琐过程。用户可以选择多个文件后一次性提交,节省了用户的时间。 2. **拖放功能...
1 判断session是否失效 本实例没测试这个问题 但在工作项目中碰到了 但原因在这里记录下:web应用会存在一个session 而uploadify上传时也会产生一个新的session 导致在后台判断session是否失效时获取的session为null...
【Uploadify + Struts2 实现文件上传详解】 在Web开发中,文件上传是一个常见的功能需求,尤其是在内容管理系统、论坛或者其他需要用户提交图片、文档等资料的场景。Uploadify是一款基于jQuery的文件上传插件,它...
综上所述,Uploadify 3.2.1是一个强大且易用的文件上传插件,其详细的文档和示例使得开发者能够快速集成到项目中,实现高效、便捷的文件上传功能。无论是在小型个人项目还是大型企业级应用中,它都是一个值得信赖的...
`uploadify`与`Struts2`结合的多文件上传实例就是一个典型的解决方案,尤其针对跨浏览器兼容性问题,如在Firefox下的session问题。下面我们将深入探讨这两个技术以及它们如何协同工作。 `Uploadify`是一个基于...
代码使用Struts2框架和uploadify插架实现多文件上传功能。
Uploadify 是一个流行的JavaScript上传插件...通过以上步骤,你就能在项目中实现Uploadify 3.2.1的文件上传功能。记住,理解每个部分的工作原理以及如何定制和扩展是关键,这样可以使Uploadify更好地适应你的项目需求。
在本文中,我们将深入探讨如何使用jQuery、Uploadify、Struts2和JSP技术实现一个图片批量上传的Demo。这个组合提供了高效、用户友好的文件上传解决方案,特别适合需要处理大量图片的Web应用。 首先,jQuery是一个轻...
Uploadify是一款基于jQuery的文件上传插件,版本为3.2.1,它极大地简化了在Web应用中实现异步无刷新多文件上传的过程。这个插件的核心特性是通过Ajax技术实现在后台处理文件上传,使得用户在上传过程中无需等待页面...
Uploadify v3.2.1 是一款流行的前端文件上传插件,主要应用于Web应用程序中,让用户能够方便快捷地上传文件到服务器。这个个人修复版是针对官方原版的一个改进版本,解决了用户在官网下载后遇到的一些问题。修复者...
该插件通过AJAX和Flash技术提供异步文件上传功能,允许用户在不刷新页面的情况下上传多个文件。它提供了丰富的配置选项,如设置上传文件类型、限制上传文件大小、自定义上传按钮样式等,使得开发者可以灵活地定制...
本教程将详细讲解如何使用`uploadify`、`Struts2`和`JSON`技术实现前台动态向后台发送数据,以及展示后台返回参数来完成文件上传的功能。这三个组件在Web开发中各自扮演着重要的角色: 1. **Uploadify**:Uploadify...
在IT领域,jQuery Uploadify与Struts2的整合是一个常见的前端文件上传解决方案。这个整合能够为Web应用提供高效、用户友好的文件上传功能。现在,我们来深入探讨这个主题。 首先,jQuery是一个轻量级、高性能的...
Uploadify V3.2.1是一款广泛应用于网页端的文件上传插件,它以其便捷、高效和用户友好的特性在IT行业中受到了众多开发者和设计师的青睐。这款插件允许用户在网页上实现批量、多文件的上传功能,极大地提升了文件交互...
完整的Uploadify+Struts2使用案例,前台用jQuery的DOM技术生成隐藏的input,后台由action负责上传,上传结束后提交前台的form。再由另外一个action完成链接和其他信息的持久化工作。
Uploadify是一个易集成的多文件上传解决方案,在手册翻译时,3.2版目前最新。作为一个jQuery插件,Uploadify不仅使用简单而且可定制性非常强。
此js解决jquery.uploadify.3.2.1 在IE9,IE10中 上传文件的按钮会无法点问题