1. 下载js包 (3.2版本)

下载地址:http://www.uploadify.com/download/

解压后文件:

jsp页面

<div class="pageContent">
<style>
.fileQueue li{margin:5px auto;padding:2px 15px 2px;width:85%;height:30px;line-height:30px;font-size:14px;border:1px dashed #C1C1C1;overflow:hidden;cursor:pointer}
.fileQueue li:hover{border:1px solid #F00;background:url(themes/default/images/btn/remove.gif) #E9C341 no-repeat right 50%;}
</style>
<link href="themes/uploadify/uploadify.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="themes/uploadify/jquery.uploadify.min.js"></script>
<script src="themes/js/jquery-1.7.2.js" type="text/javascript"></script>
<script type="text/javascript">$(document).ready(function (){var $panel = navTab.getCurrentPanel();//var uploadObj = $("#trFileInit input[name=uploadFile]");//$(uploadObj).uploadify(uploaderOption);var htmlFile = $("#TypeTemplet", $panel).find("tbody").html();var docTypeNum = 0;//类型行计数//新增行$("input[name=addType]", $panel).click(function() {var $this = $(this);docTypeNum++;var inputFile = "<input type=\"file\" name=\"uploadFile\" id=\"file_{docTypeNum}\" /><div id=\"fileQueue_{docTypeNum}\" class=\"fileQueue\"><ol></ol></div><input type=\"hidden\" name=\"fileCount\" id=\"fileCount_{docTypeNum}\" class=\"required\" mingt=\"0\" title=\"请上传文件\" value=\"0\"/><input type=\"hidden\" name=\"fileName\" id=\"fileName_{docTypeNum}\" class=\"required\" value=\"\" />";inputFile = inputFile.format({"docTypeNum" : docTypeNum});var $tr = $(htmlFile).initUI();$(".tdFile",$tr).append(inputFile);$this.parent().parent().before($tr);var uploadObjAdd = $("input[name=uploadFile]",$tr);var uploaderOption={'formData' : {'docTypeNum' : docTypeNum},'swf'      : 'themes/uploadify/uploadify.swf','uploader' : 'singleFileUpload_uploadOneFile.action','multi': true,              // 是否支持同时上传多个文件  'auto': true,                 //设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 。'fileObjName' : 'uploadFile',   //文件对象名称,用于后台获取文件对象时使用'buttonImage': 'themes/uploadify/bottonImage.png', //浏览按钮的图片'height': '20','width' : '80','removeTimeout' : '1', //上传完成后从队列移除的时间 'progressData':"percentage", //有speed和percentage两种,一个显示速度,一个显示完成百分比 //'queueID': queueID,     //文件队列的ID,该ID与存放文件队列的div的ID一致'preventCaching':true,       //后缀加随机数,防止缓存'requeueErrors':false,     //上传出现错误后,重新加入队列'successTimeout':30,        //等待服务器响应时间,超过30秒认为上传完成'onFallback':function(){    alert("您未安装FLASH控件,无法上传文件!请安装FLASH控件后再试。");    },'onUploadSuccess': function(file,data,response){var objResult = jQuery.parseJSON(data);//TODO:展示相应上传文件,以便用户知晓目前已经上传了哪些文件var fileHtml = "<li title=\"点击删除该文件\">{uploadFileOriginName}<input type=\"hidden\" name=\"docTypeNum\" value=\"{docTypeNum}\" /><input type=\"hidden\" name=\"uploadFileRelativePath\" value=\"{uploadFileRelativePath}\" /><input type=\"hidden\" name=\"uploadFileAbsolutePath\" value=\"{uploadFileAbsolutePath}\" /></li>";fileHtml = fileHtml.format({docTypeNum : docTypeNum,uploadFileOriginName : objResult.uploadFileOriginName,uploadFileRelativePath : objResult.uploadFileRelativePath,uploadFileAbsolutePath : objResult.uploadFileAbsolutePath});$("#fileQueue_" + objResult.docTypeNum + " ol").append(fileHtml);// 每次上传文件重新赋值文件名var fileName = $("#fileName_" + objResult.docTypeNum);fileName.val(fileName.val() + objResult.uploadFileAbsolutePath + ",");//每一个文件类型上传文件计数var fileCount = $("#fileCount_" + objResult.docTypeNum);fileCount.val(parseInt(fileCount.val())+1);},'onInit'   : function(instance) {},'onUploadError' : function(file, errorCode, errorMsg, errorString) {//  alert(file.name + "文件上传失败 : " + errorString);},/* 'onDialogClose'  : function(queueData) {alert("队列中提交了 "+queueData.filesQueued +"个文件 !");}, */'onQueueComplete' : function(queueData) {//alert(queueData.uploadsSuccessful + "个文件上传成功," + queueData.uploadsErrored + "个文件上传失败!");//$("#count").val(queueData.uploadsSuccessful);}};$(uploadObjAdd).uploadify(uploaderOption);});//新增每一个li绑定click事件  上传文件删除,文件名称重新赋值$("li").live("click", function () {var file = $(this).find("input[name=uploadFileAbsolutePath]").val();var Type = $(this).find("input[name=docTypeNum]").val();var fileName = $("#fileName_" + Type);var fileNameVal = fileName.val();var fileNames = fileNameVal.substring(0,fileNameVal.length-1).split(",");var fileNas = "";for(var i = 0 ; i < fileNames.length ; i++){if(file != fileNames[i]){fileNas += fileNames[i] + ",";}}$(this).remove();fileName.val(fileNas);});});
</script><form method="post" action="xxxxxxxxxxx_upload.action" class="pageForm required-validate" enctype="multipart/form-data"οnsubmit="return iframeCallback(this, navTabAjaxDone);"><div class="tableList" layouth="33"><table class="tbl w750" width="750"><thead><tr><th colspan="3">新增签约信息</th></tr></thead><tbody><tr><tr class="type"><td colspan="2" class="regDetailSort">选择类型与文件</td></tr><tr class="type"><td colspan="2"><table style="width: 99%;margin:0 auto;"><thead><tr><td width="40%" class="c">选择类型</td><td width="40%" class="c">上传文件</td><td class="c">操作</td></tr></thead><tbody><tr><td colspan="3" class="c"><input type="button" name="addType" class="btnAdd" value="增加一行" /></td></tr></tbody></table></td></tr></tbody></table></div><div class="panelBar toolBarBtn"><input type="submit" name="btnSave" class="btnSave" value="保存" target="ajaxTodo" title="确定要保存吗?" /></div></form>
</div><div style="display:none;"><table id="TypeTemplet" style="width:99%;"><tbody><tr><td><djctag:parameter_select pmCode="AC0037" name="docType" required="true" all="true" allTipsText="请选择类型" /></td><td class="tdFile"></td><td><input type="button" name="btnDel" value="删除" style="height: 20px;cursor:pointer" class="deleteRow btnDel"/></td></tr></tbody></table>
</div>

Action 文件上传处理

public class SingleFileUploadAction extends BaseAction {private static final long serialVersionUID = -1937371053388726125L;//上传文件private File uploadFile; //上传文件名(上传前原文件名,不含路径)private String uploadFileFileName;//上传文件内容类型private String uploadFileContentType;private String docTypeNum;File toFile = null;String toFileName;/*上传文件保存目录*/private static String UPLOAD_BASE = SysConfig.getInstance().get("UPLOAD_BASE");/*上传文件保存子目录:按照日期生成*/private String UPLOAD_SUB_FOLDER = DateTimeUtils.getSystemDate("yyyy/MM/dd/");/*** 上传文件* @return* @throws BusinessException*/public String uploadOneFile() throws BusinessException {try {if (uploadFile == null) {throw new BusinessException("未找到上传文件!");}Log.logDebug("\t上传文件: " + uploadFile + "\n\t\t上传文件名: " + uploadFileFileName + "\n\t\t上传文件类型: " + uploadFileContentType);// 根据系统时间生成上传够保存的文件名String prefix = DateTimeUtils.getSystemTime("yyyyMMddHHmmssSSS");toFileName = prefix + "." + getFileExtionName(uploadFileFileName);toFile = new File(getSavePath(), toFileName);if (!toFile.getParentFile().exists()) {toFile.getParentFile().mkdirs();}Log.logDebug(toFile);try {FileUtils.copyFile(uploadFile, toFile);} catch (IOException e) {throw new BusinessException("文件读取失败!", e);}request.setAttribute("uploadFileOriginName", uploadFileFileName);//上传文件原名称request.setAttribute("uploadFileSavedName", toFileName);       //上传文件新名称request.setAttribute("uploadFileContentType", uploadFileContentType);//上传文件内容类型request.setAttribute("uploadFileRelativePath", this.getUploadFileRelativePath());//上传文件保存相对路径request.setAttribute("uploadFileAbsolutePath", StringEscapeUtils.escapeJava(this.getUploadFileAbsolutePath()));//上传文件保存绝对路径request.setAttribute("docTypeNum", docTypeNum);} catch (BusinessException e) {e.printStackTrace();String message = null;ExceptionHandler exceptionHandler = new ExceptionHandler();message = exceptionHandler.getBusinessExceptionMessage(e);request.setAttribute("statusCode", "500");request.setAttribute("message", message);return "upload-fail";/*throw e;*/} catch (Exception e) {e.printStackTrace();request.setAttribute("statusCode", "500");request.setAttribute("message", "文件读取失败!");return "upload-fail";}  return "upload-success";}/*** 方法描述:得到文件的拓展名*  * @param fileName* @return 返回文件拓展名,无扩展名则返回“”*/public String getFileExtionName(String fileName) {if(StringUtils.isEmpty(fileName)){return "";}int dotIndex = fileName.lastIndexOf(".");if (dotIndex > 0) {return fileName.substring(dotIndex + 1);} else {return "";}}private String getSavePath() {String uploadDir = UPLOAD_BASE + UPLOAD_SUB_FOLDER;return uploadDir;}/*** 方法描述: 获取上传文件存储相对路径* @return 上传文件存储相对路径*/public String getUploadFileRelativePath() {return UPLOAD_SUB_FOLDER + toFileName;}/*** 方法描述: 获取上传文件存储绝对路径* @return 上传文件存储绝对路径*/public String getUploadFileAbsolutePath() {return this.toFile.getAbsolutePath();}public File getUploadFile() {return uploadFile;}public void setUploadFile(File uploadFile) {this.uploadFile = uploadFile;}public String getUploadFileFileName() {return uploadFileFileName;}public void setUploadFileFileName(String uploadFileFileName) {this.uploadFileFileName = uploadFileFileName;}public String getUploadFileContentType() {return uploadFileContentType;}public void setUploadFileContentType(String uploadFileContentType) {this.uploadFileContentType = uploadFileContentType;}public String getDocTypeNum() {return docTypeNum;}public void setDocTypeNum(String docTypeNum) {this.docTypeNum = docTypeNum;}
}
Action 保存
<span style="white-space:pre">   </span>public String upload(){//int[] fileCount = super.getIntParameterValues("fileCount");   String[] fileName = super.getParameterValues("fileName");   String[] docType = super.getParameterValues("docType"); signBiz.signAdd(doc, fileName, docType, user);return "upload";}
</pre><pre name="code" class="java">效果图

Struts2+ibatis+dwz 框架实现uploadify上传文件相关推荐

  1. Laravel中使用uploadify 上传文件返回出现debugbar信息解决思路

    Laravel5.5源码详解 – Laravel-debugbar 及使用elementUI - ajax的注意事项 关于laravel对中间件的处理,请参中间件考另文,  Laravel5.5源码详 ...

  2. java使用uploadify上传文件

    一.简介 Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示:可以上传多个文件: 详细的使用方法网上有很多,建议到官网参考,这里仅仅展示其使用的效果: 官网:www.upl ...

  3. 【第九篇】uploadify上传文件

    依然不多说,上代码 首先是给文件夹的位置 然后上代码 1 <div class="upload"> 2 <div class="uploadswf&qu ...

  4. 【django轻量级框架】HTML上传文件拦截到本地

    文章目录 1 注意 2 在 index.html 加入input 标签 3 修改 views.py 1 注意 这里需要注意两个地方: 表单提交方式需要是 post form 添加一个属性为 encty ...

  5. uploadify 上传文件并带有随机数文件名生成

    2019独角兽企业重金招聘Python工程师标准>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition ...

  6. uploadify上传文件出现http302错误

    这两天在做注册页面的时候遇到的问题,uploadify在上传图片时,提示http302错误, 百度了一圈都说是sessionid的问题,传一个sessionid过去就可以了,但是发现sessionid ...

  7. php uploadify上传文件

    一.下载和使用 下载地址: http://www.uploadify.com/download/ 文档地址: http://www.uploadify.com/documentation/ 下载后解压 ...

  8. java实现文件同步_Java负载均衡服务器实现上传文件同步

    负载服务器Z,应用服务器A 和B ,从A上传的附件,如何在B上下载下来? 这个问题我的解决思路如下(后来被一个装逼的面试官给批评了这种做法,不过我瞧不起他) 服务器A.B 上传附件的时候,将这个附件备 ...

  9. Bootstrap框架----单张图片上传实现---Uploadify插件

    框架搭建 我们在之前的文章中已经实现了 单张图片的上传,使用的是最基本的 File类型的input提交的方式,上传到远程静态资源器和七牛云. 之前的文章关注的地方 主要是后端,也就是图片上传保存到哪里 ...

最新文章

  1. Java中的50个关键字
  2. android selector下的设置背景属性值
  3. export ,export default 和 import 区别 以及用法
  4. html5中标签分为,HTML标签的三种类型
  5. Java黑皮书课后题第3章:*3.34(几何:线段上的点)编程练习题3.32显示了如何测试一个点是否在一个无限长的直线上。修改3.32测试一个点是否在一个线段上。编写程序,输入三个点坐标,显示在否线段
  6. ajxs跨域 php_php设置header头允许ajax跨域请求
  7. CodeForces - 1058D D. Vasya and Triangle
  8. 全球100款大数据工具汇总(前50款)
  9. 《MySQL——连接查询》
  10. CentOS 7.0 上安装和配置 VNC 服务器
  11. 互联网日报 | 3月12日 星期五 | 京东全年净增1.1亿活跃用户;百度计划3月23日登陆港交所;中国联通首次公布5G用户数...
  12. c#获取屏幕分辨率信息
  13. Vivado MMCM IP核接口信号介绍
  14. 黑鲨4游戏手机开启预热:4>5+6+7 比竞品更胜一筹
  15. 电信5g网络apn接入点_华为就5G网络设备禁令起诉瑞典邮政和电信管理局
  16. php获取微信小程序用户头像,微信小程序获取用户头像+昵称+openid,小程序登录!附前端后端源码!...
  17. linux中ftp保持连接,linux – FTP’ing大文件时如何防止TCP连接超时?
  18. 忆亚强建筑预算软件的2001年半年时光
  19. 王凯1987计算机系,王凯-专家人物-中国水网
  20. 【数学模拟卷总结】2022李林四套卷数学二第一套

热门文章

  1. gradle引入依赖包/maven引入依赖包
  2. ABP+AdminLTE+Bootstrap Table权限管理系统第五节--WBEAPI及SwaggerUI
  3. grep -v grep使用说明
  4. Spring Cloud云服务架构 - commonservice-config配置服务搭建
  5. android 调用相机并获取图片地址,Android 7.0使用FileProvider获取相机拍照的图片路径...
  6. 百人会20年华盛顿之行随感
  7. 把数据中心建在海底,“水中捞月”的微软是怎么想的?
  8. sql%rowcount
  9. xa 全局锁_索尼Sony Xperia X/Performance/XA解锁教程及解锁码
  10. 用 shell 语言提取文件中的信息到另一个文件夹中