文件上传

页面代码:

  1. <!--引入CSS-->
  2. <link rel="stylesheet" type="text/css" href="webuploader文件夹/webuploader.css">
  3. <!--引入JS-->
  4. <script type="text/javascript" src="webuploader文件夹/webuploader.js"></script>
  5. <!--SWF在初始化的时候指定,在后面将展示-->
  6. <div id="uploader" class="wu-example">
  7. <!--用来存放文件信息-->
  8. <div id="thelist" class="uploader-list"></div>
  9. <div class="btns">
  10. <div id="picker">选择文件</div>
  11. <button id="ctlBtn" class="btn btn-default">开始上传</button>
  12. </div>
  13. </div>

常用的js

  1. // 文件上传
  2. jQuery(function() {
  3. var $ = jQuery,
  4. $list = $('#thelist'),
  5. $btn = $('#ctlBtn'),
  6. state = 'pending',
  7. uploader;
  8.  
  9. uploader = WebUploader.create({
  10.  
  11. // 不压缩image
  12. resize: false,
  13.  
  14. // swf文件路径
  15. swf: BASE_URL + '/js/Uploader.swf',
  16.  
  17. // 文件接收服务端。
  18. server: 'http://webuploader.duapp.com/server/fileupload.php',
  19.  
  20. // 选择文件的按钮。可选。
  21. // 内部根据当前运行是创建,可能是input元素,也可能是flash.
  22. pick: '#picker'
  23. });
  24.  
  25. // 当有文件添加进来的时候
  26. uploader.on( 'fileQueued', function( file ) {
  27. $list.append( '<div id="' + file.id + '" class="item">' +
  28. '<h4 class="info">' + file.name + '</h4>' +
  29. '<p class="state">等待上传...</p>' +
  30. '</div>' );
  31. });
  32.  
  33. // 文件上传过程中创建进度条实时显示。
  34. uploader.on( 'uploadProgress', function( file, percentage ) {
  35. var $li = $( '#'+file.id ),
  36. $percent = $li.find('.progress .progress-bar');
  37.  
  38. // 避免重复创建
  39. if ( !$percent.length ) {
  40. $percent = $('<div class="progress progress-striped active">' +
  41. '<div class="progress-bar" role="progressbar" style="width: 0%">' +
  42. '</div>' +
  43. '</div>').appendTo( $li ).find('.progress-bar');
  44. }
  45.  
  46. $li.find('p.state').text('上传中');
  47.  
  48. $percent.css( 'width', percentage * 100 + '%' );
  49. });
  50.  
  51. uploader.on( 'uploadSuccess', function( file ) {
  52. $( '#'+file.id ).find('p.state').text('已上传');
  53. });
  54.  
  55. uploader.on( 'uploadError', function( file ) {
  56. $( '#'+file.id ).find('p.state').text('上传出错');
  57. });
  58.  
  59. uploader.on( 'uploadComplete', function( file ) {
  60. $( '#'+file.id ).find('.progress').fadeOut();
  61. });
  62.  
  63. uploader.on( 'all', function( type ) {
  64. if ( type === 'startUpload' ) {
  65. state = 'uploading';
  66. } else if ( type === 'stopUpload' ) {
  67. state = 'paused';
  68. } else if ( type === 'uploadFinished' ) {
  69. state = 'done';
  70. }
  71.  
  72. if ( state === 'uploading' ) {
  73. $btn.text('暂停上传');
  74. } else {
  75. $btn.text('开始上传');
  76. }
  77. });
  78.  
  79. $btn.on( 'click', function() {
  80. if ( state === 'uploading' ) {
  81. uploader.stop();
  82. } else {
  83. uploader.upload();
  84. }
  85. });
  86. });

 

图片上传

 页面部分:

  1. <!--引入CSS-->
  2. <link rel="stylesheet" type="text/css" href="webuploader文件夹/webuploader.css">
  3. <!--引入JS当然还有jQuery 的包-->
  4. <script type="text/javascript" src="webuploader文件夹/webuploader.js"></script>
  5. <!--SWF在初始化的时候指定,在后面将展示-->
  6.  
  7. <!--dom结构部分-->
  8. <div id="uploader-demo">
  9. <!--用来存放item-->
  10. <div id="fileList" class="uploader-list"></div>
  11. <div id="filePicker">选择图片</div>
  12. </div>

  

上传图片:

  1. // 图片上传demo
  2. jQuery(function() {
  3. var $ = jQuery,
  4. $list = $('#fileList'),
  5. // 优化retina, 在retina下这个值是2
  6. ratio = window.devicePixelRatio || 1,
  7.  
  8. // 缩略图大小
  9. thumbnailWidth = 100 * ratio,
  10. thumbnailHeight = 100 * ratio,
  11.  
  12. // Web Uploader实例
  13. uploader;
  14.  
  15. // 初始化Web Uploader
  16. uploader = WebUploader.create({
  17.  
  18. // 自动上传。
  19. auto: true,
  20.  
  21. // swf文件路径
  22. swf: BASE_URL + '/js/Uploader.swf',
  23.  
  24. // 文件接收服务端。
  25. server: 'http://webuploader.duapp.com/server/fileupload.php',
  26.  
  27. // 选择文件的按钮。可选。
  28. // 内部根据当前运行是创建,可能是input元素,也可能是flash.
  29. pick: '#filePicker',
  30.  
  31. // 只允许选择文件,可选。
  32. accept: {
  33. title: 'Images',
  34. extensions: 'gif,jpg,jpeg,bmp,png',
  35. mimeTypes: 'image/*'
  36. }
  37. });
  38.  
  39. // 当有文件添加进来的时候
  40. uploader.on( 'fileQueued', function( file ) {
  41. var $li = $(
  42. '<div id="' + file.id + '" class="file-item thumbnail">' +
  43. '<img>' +
  44. '<div class="info">' + file.name + '</div>' +
  45. '</div>'
  46. ),
  47. $img = $li.find('img');
  48.  
  49. $list.append( $li );
  50.  
  51. // 创建缩略图
  52. uploader.makeThumb( file, function( error, src ) {
  53. if ( error ) {
  54. $img.replaceWith('<span>不能预览</span>');
  55. return;
  56. }
  57.  
  58. $img.attr( 'src', src );
  59. }, thumbnailWidth, thumbnailHeight );
  60. });
  61.  
  62. // 文件上传过程中创建进度条实时显示。
  63. uploader.on( 'uploadProgress', function( file, percentage ) {
  64. var $li = $( '#'+file.id ),
  65. $percent = $li.find('.progress span');
  66.  
  67. // 避免重复创建
  68. if ( !$percent.length ) {
  69. $percent = $('<p class="progress"><span></span></p>')
  70. .appendTo( $li )
  71. .find('span');
  72. }
  73.  
  74. $percent.css( 'width', percentage * 100 + '%' );
  75. });
  76.  
  77. // 文件上传成功,给item添加成功class, 用样式标记上传成功。
  78. uploader.on( 'uploadSuccess', function( file ) {
  79. $( '#'+file.id ).addClass('upload-state-done');
  80. });
  81.  
  82. // 文件上传失败,现实上传出错。
  83. uploader.on( 'uploadError', function( file ) {
  84. var $li = $( '#'+file.id ),
  85. $error = $li.find('div.error');
  86.  
  87. // 避免重复创建
  88. if ( !$error.length ) {
  89. $error = $('<div class="error"></div>').appendTo( $li );
  90. }
  91.  
  92. $error.text('上传失败');
  93. });
  94.  
  95. // 完成上传完了,成功或者失败,先删除进度条。
  96. uploader.on( 'uploadComplete', function( file ) {
  97. $( '#'+file.id ).find('.progress').remove();
  98. });
  99. });

  

官方webupload上传多个文件或者图片的方法的更多相关文章

  1. ASP.NET 使用ajaxfileupload.js插件出现上传较大文件失败的解决方法(ajaxfileupload.js第一弹)

    在写这篇的时候本来想把标题直接写成报错的提示,如下: “SecurityError:Blocked a frame with origin "http://localhost:55080&q ...

  2. ASP.NET 使用ajaxupload.js插件出现上传较大文件失败的解决方法

    在网上下载了一个ajaxupload.js插件,用于无刷新上传图片使的,然后就按照demo的例子去运行了一下,上传啊什么的都OK,但是正好上传的示例图片有一个比较大的,4M,5M的样子,然后上传就会报 ...

  3. 通过Fastdfs进行文件上传服务(文件和图片的统一处理)

    1.文件上传简单流程分析图: 2.Fastdfs介绍: Fastdfs由两个角色组成: Tracker(集群):调度(帮你找到有空闲的Storage) Storage(集群):文件存储(帮你保存文件或 ...

  4. spring mvc文件上传(单个文件上传|多个文件上传)

    单个文件上传spring mvc 实现文件上传需要引入两个必须的jar包    1.所需jar包:                commons-fileupload-1.3.1.jar       ...

  5. 文件的上传(1)(表单上传和ajax文件异步上传)

    文件的上传(表单上传和ajax文件异步上传) 项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举 ...

  6. ASP.NET Core WEB API 使用element-ui文件上传组件el-upload执行手动文件文件,并在文件上传后清空文件

    前言: 从开始学习Vue到使用element-ui-admin已经有将近快两年的时间了,在之前的开发中使用element-ui上传组件el-upload都是直接使用文件选取后立即选择上传,今天刚好做了 ...

  7. 前端js webuploader上传(导入)excel文件

    项目开发中用到导入(上传)Excel文件 我使用的是百度的webuploader: 1:下载:http://fex.baidu.com/webuploader/(官方下载/示例) 2:使用Web Up ...

  8. 强大的支持多文件上传的jQuery文件上传插件Uploadify

    支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Fla ...

  9. SecureCRT上传和下载文件

    SecureCRT上传和下载文件(下载默认目录) SecureCR 下的文件传输协议有ASCII .Xmodem .Ymodem .Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. ...

随机推荐

  1. PyCharm的一些使用技巧

    定位到函数定义 在函数名处 Ctrl + B 就会快速定位到函数定义处 在Console中执行文件 全选内容后,右键菜单 Execute Selection in Console 或者快捷键 Alt ...

  2. c# 中的 protected internal 如何在 vc.net 中实现

    c# 中有 protected internal 的复合访问属性, 保证assembly内部访问,以及外部的派生类访问 vc.net 中无法直接写上 protected internal, 其对应的写 ...

  3. Codevs 1140 Jam的计数法

    1140 Jam的计数法 题目描述 Description Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个 ...

  4. PostgreSQL - N''和::bpchar

    N''的效果和::bpchar效果类似,都表示定长字符串.比如下边的sql: select n'233' as num; select '233'::bpchar as num; select '23 ...

  5. python如何用pip安装模块

    pip去python官网下载 我想写的是安装后怎么做,假设我们要安装pymysql模块 在python交互式模式中运行pip install pymysql 会抛出 语法错误,不知为何. 此时应该找到 ...

  6. IDEA 快捷键MacOS

    Alt + Enter 导入包,自动修正 Command + N 查找类 Command + Shift + N查找文件 Command + Alt + L格式化代码 Command + Alt + ...

  7. lucene原理及java实现

    https://blog.csdn.net/liuhaiabc/article/details/52346493 https://blog.csdn.net/yang307511977/article ...

  8. VLAN-1-VLAN配置

    f0/12和f0/24不在列表中,因为它们动态地成为trunk,支持多个vlan       “unsup”意为这个2950交换机不支持FDDI和TR       首先 switchport mode ...

  9. 2017 Multi-University Training Contest - Team 1 Add More Zero

    Problem Description There is a youngster known for amateur propositions concerning several mathemati ...

  10. SpringMVC-异常处理器

    1.    异常处理思路 系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生. 系统 ...