1.导入控件样式文件

<link rel="stylesheet" type="text/css" href="__PUBLIC__/statics/webuploader-0.1.5/demo.css">
<link rel="stylesheet" type="text/css" href="__PUBLIC__/statics/webuploader-0.1.5/webuploader.css">

2.导入控件Js文件

<script type="text/javascript" src="__PUBLIC__/statics/webuploader-0.1.5/webuploader.js"></script>

3.HTML代码片段

<tr><th width="30%">附件:</th><td><div class="page-container"><div id="uploader" class="wu-example"><div class="queueList"></div><div class="statusBar" ><div class="btns"><div id="filePicker"></div><div class="uploadBtn">开始上传</div></div></div></div></div>                                </td>
</tr>

4.javascript 实现控件设置

// 文件上传jQuery(function () {//定义参数var $ = jQuery,$wrap = $('#uploader'),$queue = $('<ul class="filelist"></ul>').appendTo($wrap.find('.queueList')),fileCount = 0,fileSize = 0,ratio = window.devicePixelRatio || 1,// 缩略图大小thumbnailWidth = 110 * ratio,thumbnailHeight = 110 * ratio,percentages = {},//是否支持旋转supportTransition = (function () {var s = document.createElement('p').style,r = 'transition' in s ||'WebkitTransition' in s ||'MozTransition' in s ||'msTransition' in s ||'OTransition' in s;s = null;return r;})(),state = 'pedding',//上传按钮$upload = $wrap.find('.uploadBtn'),errMsg = '上传失败,请重试';uploader;//实例化uploader = WebUploader.create({pick: {id: '#filePicker',label: '点击选择文件'},accept: {title: 'myself',extensions: 'gif,jpg,jpeg,bmp,png,pdf,doc,docx,xls,xlsx,rar,zip',mimeTypes: 'image/*,application/pdf,application/msword,application/msexcel,application/rar,application/zip,application/vnd.openxmlformats-officedocument.wordprocessingml.document'},// swf文件路径swf: '__PUBLIC__/statics/webuploader-0.1.5/Uploader.swf',server: '{:U("Upload/uploaddata")}',duplicate: true});function setState(val) {var file, stats;if (val === state) {return;}$upload.removeClass('state-' + state);$upload.addClass('state-' + val);state = val;switch (state) {case 'pedding':      //待定$queue.parent().removeClass('filled');$queue.hide();uploader.refresh();break;case 'ready':$('#filePicker').removeClass('element-invisible');$queue.parent().addClass('filled');$queue.show();uploader.refresh();break;case 'uploading':$('#filePicker').addClass('element-invisible');$upload.text('暂停上传');break;case 'paused':$upload.text('继续上传');break;case 'confirm':$upload.text('开始上传').addClass('disabled');stats = uploader.getStats();if (stats.successNum && !stats.uploadFailNum) {setState('finish');return;}break;case 'finish':stats = uploader.getStats();console.log(stats);if (stats.successNum) {// alert('上传成功');layer.msg('上传成功',{icon:1,time:1000}); } else {// 没有成功的图片,重设state = 'done';location.reload();}break;}if (state != "ready") {$('#filePicker').removeClass('element-invisible');$upload.text('开始上传').removeClass('disabled');}}function addFile(file) {var $li = $('<li id="' + file.id + '">' +'<p class="title">' + file.name + '</p>' +'<p class="imgWrap"></p>' +'<p class="progress"><span></span></p>' +'</li>'),$btns = $('<div class="file-panel">' +'<span class="cancel">删除</span>' +'<span class="rotateRight">向右旋转</span>' +'<span class="rotateLeft">向左旋转</span></div>').appendTo($li),$prgress = $li.find('p.progress span'),$wrap = $li.find('p.imgWrap'),$info = $('<p class="error"></p>'),showError = function (code) {switch (code) {case 'exceed_size':text = '文件大小超出';break;case 'interrupt':text = '上传暂停';break;default:text = errMsg;;break;}$info.text(text).appendTo($li);};//1.生成缩略图if (file.getStatus() === 'invalid') {  //不合格
                showError(file.statusText);} else {// @todo lazyload$wrap.text('预览中');uploader.makeThumb(file, function (error, src) {if (error) {$wrap.text('不能预览');return;}var img = $('<img src="' + src + '">');$wrap.empty().append(img);}, thumbnailWidth, thumbnailHeight);percentages[file.id] = [file.size, 0];file.rotation = 0;}//2.文件状态变化file.on('statuschange', function (cur, prev) {//前一个状态if (prev === 'progress') {             //上传中$prgress.hide().width(0);}else if (prev === 'queued') {          //进入队列,等待上传$li.off('mouseenter mouseleave');$btns.remove();}// 成功if (cur === 'error' || cur === 'invalid') {    //失败不合格
                    showError(file.statusText);percentages[file.id][1] = 1;} else if (cur === 'interrupt') {           //暂停showError('interrupt');} else if (cur === 'queued') {              //队列中percentages[file.id][1] = 0;} else if (cur === 'progress') {            //上传中
                    $info.remove();$prgress.css('display', 'block');} else if (cur === 'complete') {            //上传完成$li.append('<span class="success"></span>');}$li.removeClass('state-' + prev).addClass('state-' + cur);});//3.缩略图标签 旋转删除$li.on('mouseenter', function () {$btns.stop().animate({ height: 30 });});$li.on('mouseleave', function () {$btns.stop().animate({ height: 0 });});$btns.on('click', 'span', function () {var index = $(this).index(),deg;switch (index) {case 0:uploader.removeFile(file);return;case 1:file.rotation += 90;break;case 2:file.rotation -= 90;break;}if (supportTransition) {deg = 'rotate(' + file.rotation + 'deg)';$wrap.css({'-webkit-transform': deg,'-mos-transform': deg,'-o-transform': deg,'transform': deg});} else {$wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')');}});$li.appendTo($queue);}function removeFile(file) {var $li = $('#' + file.id);delete percentages[file.id];$li.off().find('.file-panel').off().end().remove();}uploader.onUploadProgress = function (file, percentage) {var $li = $('#' + file.id),$percent = $li.find('.progress span');$percent.css('width', percentage * 100 + '%');percentages[file.id][1] = percentage;};uploader.onFileQueued = function (file) {fileCount++;fileSize += file.size;addFile(file);setState('ready');};uploader.onFileDequeued = function (file) {fileCount--;fileSize -= file.size;if (!fileCount) {setState('pedding');}removeFile(file);};uploader.on('all', function (type) {var stats;switch (type) {case 'uploadFinished':setState('confirm');break;case 'startUpload':setState('uploading');break;case 'stopUpload':setState('paused');break;}});uploader.onError = function (code) {// alert('Eroor: ' + code);layer.msg('Eroor: ' + code,{icon:1,time:1000}); };uploader.on('uploadSuccess',function(file,response){$('#uploader').append('<input type="hidden" name="urls[]" value="'+response.file_name+'@'+response.url+'" />');console.log(response);})uploader.on('uploadAccept', function (file, response) {var hasError = (response["result"] === "error");if (hasError) {// 通过return false来告诉组件,此文件上传有错。
errMsg = response['error']["message"];return false;} else {console.log(file);}});uploader.on('uploadBeforeSend', function (file, data) {data.opr = 'newupload';data.type = $("#hidtype").val();data.pid = $("#hidpid").val();});//上传按钮$upload.on('click', function () {if ($(this).hasClass('disabled')) {return false;}if (state === 'ready') {uploader.upload();} else if (state === 'paused') {uploader.upload();} else if (state === 'uploading') {uploader.stop();}});$upload.addClass('state-' + state);})

5.在上段JavaScript中是设置的多文件上传,可以通过以下方式实现单文件上传

pick: {id: '#filePicker',multiple:false, label: '点击选择图片'},
fileNumLimit: 1,

转载于:https://www.cnblogs.com/daxian2012/p/9602969.html

WebUploader 设置单个文件上传相关推荐

  1. Struts2 单个文件上传/多文件上传

    1导入struts2-blank.war所有jar包:\struts-2.3.4\apps\struts2-blank.war 单个文件上传 upload.jsp <s:form action= ...

  2. struts2之单个文件上传

    通过2种方式模拟单个文件上传,效果如下所示 开发步骤如下: 1.新建一个web工程,导入struts2上传文件所需jar,如下图 目录结构 2.新建Action 第一种方式 package com.l ...

  3. Struts2学习8--文件上传(单个文件上传)

    一.依赖 Struts2利用第三方文件上传框架:(Myeclispse已配置)进行封装,没有jar需自己加上. Library                                      ...

  4. struts2之单个文件上传(特别推荐)

    通过2种方式模拟单个文件上传,效果如下所示 开发步骤如下: 1.新建一个web工程,导入struts2上传文件所需jar,如下图 目录结构 2.新建Action 第一种方式 package com.l ...

  5. 【汇总】flash单个文件上传

    之前有朋友给我发送email,询问我是否有单个文件上传的源代码,因为当时写这个好像是在09年,所以放哪了一时也没找着.后来整理硬盘的时候,找到了源码,所以决定来个汇总(之前写过的关于flash+js上 ...

  6. 设置服务器文件上传地址,设置服务器文件上传地址

    设置服务器文件上传地址 内容精选 换一换 您需要提前准备好符合条件的镜像文件,并了解操作系统的已知问题(参见已知问题).表1中,网络.工具.驱动相关的配置需要在虚拟机内部完成,强烈建议您在原平台的虚拟 ...

  7. 利用WebUploader实现大文件上传和视频上传

    文件上传是网站开发必不可少的,常见的有图片上传.但是大文件和视频上传不常见.这里我将自己写的视频上传demo贴出来供大家参考: 利用是最新的WebUploader插件请 下载使用最新版即可 js代码 ...

  8. 用php文件创建表,使用PHP创建单个文件上传表单的最佳方式是什么?

    文件上传教程 HTML > action.php是将处理上传的PHP文件的名称(如下所示) > MAX_FILE_SIZE必须在输入类型文件之前立即出现.该值可以很容易地在客户端上操作,所 ...

  9. 百度WebUploader之实现文件上传与下载

    最近遇见一个需要上传超大大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...

最新文章

  1. IE8 的兼容性问题总结
  2. 1.2.3 TCP/PI参考模型(应用层、传输层、网际层、网络接口层)、五层参考模型(应用层、传输层、网络层、数据链路层、物理层)、OSI与TCP/IP参考模型比较
  3. 刷新存储器的容量单位是什么_存储系统 半导体存储器
  4. 处理WinForm多线程程序时的陷阱(摘自网络)
  5. 程序观点下的线性代数
  6. 计算机设备及维护招标公告,列“State”不属于表 。
  7. PHP自动压缩CSS文件方法,php 压缩多个CSS文件的实现代码
  8. 循环buffer的实现_Go并发编程-Channel的设计实现
  9. 江苏图采上传自定义证件照
  10. UDP socket--sendto and recvfrom
  11. STM32固件库下载教程
  12. 安卓学习专栏——百度地图(3)配置定位模式为GPS定位功能(图文+代码)
  13. Unity3d学习之路-初识GameSparks多人游戏插件
  14. 安全加密 - DEP, ASLR
  15. java程序员生日祝福语_给程序员的一句话祝福语
  16. AddressBook通讯录右边索引条
  17. PPT打不开提示访问出错怎么办
  18. 种子计数法对种子公司的好处
  19. 大数据周会-本周学习内容总结03
  20. 算法设计与分析实验指导(完整版)

热门文章

  1. 编译原理习题(含答案)
  2. PAT (Basic Level) Practice (中文)1005 继续(3n+1)猜想 (25 分)
  3. 【Linux】一步一步学Linux——host命令(162)
  4. 【Linux】一步一步学Linux——systemctl命令(147)
  5. 【Linux网络编程】原始套接字实例:MAC 头部报文分析
  6. 【Linux系统编程】进程间通信--有名管道
  7. php 进程函数,php多进程函数
  8. Qt--qss(暗橙色)
  9. 解决无法将自己github上的代码clone到/usr目录下的问题
  10. 深度讲解spring的循环依赖以及三级缓存