转载注明:(罗志强的博客)

angularjs的指令directive非常好使,可以很方便的结合各种插件,实现很强大的功能。 今天用到了plupload,就拿它举例吧。

正常的plupload用法应该是这样的

var uploader = new plupload.Uploader({  runtimes : 'html5,flash,silverlight,html4',browse_button : 'pickfiles', url : "/examples/upload",
});
uploader.init();

而在Angular里面,直接这么写,似乎不太优美,也不符合封装成组件的要求。 那么我们就给plupload做成angular的指令(web组件)。

这里需要注意的是,不要将初始化操作放到Controller里面,否则它可能出错,很多封装其他插件成angular组件时,就是因为初始化顺序问题,导致各种报错。controller的执行在link之前。

var app = angular.module('plupload', []);
/*** 文件上传指令* @return {[type]}           [description]*/
app.directive('plupload', ['$timeout', function($timeout) {  return {restrict: 'A', // E = Element, A = Attribute, C = Class, M = Commentlink: function($scope, iElm, iAttrs, controller) {var uploader = new plupload.Uploader({runtimes: 'html5,flash,silverlight,html4',browse_button: 'uploadfile',url: 'upload.php',multi_selection: false,filters: {max_file_size: '10mb',mime_types: [{title: "Image files",extensions: "jpg,gif,png"}, {title: "Zip files",extensions: "zip"}]},flash_swf_url: '/plupload/Moxie.swf',silverlight_xap_url: '/plupload/Moxie.xap',init: {FilesAdded: function(up, files) {uploader.start();},UploadComplete: function(up, files) {}}});uploader.init();}};
}]);

这样上传插件就算封装完成了。使用的时候,就先引入模块文件,然后引入模块

var app = angular.module('app', [  'plupload'
]);

使用的时候像下面这样。

<button class="btn btn-primary btn-sm" id="uploadfile" plupload>本地上传</button>

如果在 模块app的作用域下, plupload指令就会生效了。

上面代码是从项目里面拿出来修改的,没有经过测验。方便借鉴,如果有什么疑问,联系:(fermi)294052929@qq.com

转载于:https://www.cnblogs.com/showstyle/p/5316089.html

angularjs结合plupload实现文件上传相关推荐

  1. Node开发文件上传系统及向七牛云存储和亚马逊AWS S3的文件上传

    背景起,有奏乐: 有伟人曰:学习技能的最好途径莫过于理论与实践相结合. 初学Node这货时,每每读教程必会Fall asleep. 当真要开发系统时,顿觉精神百倍,即便踩坑无数也不失斗志. 因为同团队 ...

  2. angularjs php上传文件,AngularJS 文件上传 的功能你了解的多少?几分钟就让你了解angularjs的文件上传...

    本篇文章主要的讲述了angularjs的文件上传功能,大家又不懂都可以来看,希望能帮助到大家.下面就让我们一起来看这篇文章吧 问题描述附件上传 检定结果以附件形式上传. 这里先不考虑api. 实现的任 ...

  3. plupload+artdialog实现多平台文件上传

    背景:本来项目中使用的前端文件上传控件是uploadify,一切相安无事了一段时间后.现场传来"喜讯",客户要用ipad使用系统,还想上传图片.客户老爷一拍脑门,研发就要加班加点. ...

  4. Plupload文件上传组件使用API

    Plupload有以下功能和特点: 1.拥有多种上传方式:HTML5.flash.silverlight以及传统的<input type="file" />.Plupl ...

  5. java 批量上传图片插件_java多文件上传plupload控件实现多图片上传(一)

    使用的是plupload-2.1.2 控件.网上资源挺多的,很好下载. plupload 官方地址 : http://www.plupload.com/ plupload 示例: http://www ...

  6. pupload 文件分块 php,基于Plupload实现Base64分割的文件上传方案

    标题:基于Plupload实现Base64分割的文件上传方案 关键词:文件上传.Base64.Plupload.Blob.分割上传 领域:Web前端 作者:孙振强 日期:2018-04-13 目录 背 ...

  7. 使用PLupload在同一页面中进行多个不同类型上传解决方案和一次多文件上传的注意事项...

    首先感谢,http://www.cnblogs.com/2050/p/3913184.html 这篇文章作者. 在使用PLUpload之前个人先封装了一些常用配置,并且将success与error做为 ...

  8. plupload文件上传插件使用

    官方文档:http://www.phpin.net/tools/plupload/ //实例化组件 //附件1上传路径 var dirFile1 = '/upload/htfj/rchtfj/${da ...

  9. ssm上传文件进度条_SSM框架+Plupload实现分块上传大文件示例

    关于Plupload的介绍,相信它的官网http://www.plupload.com/已经给得很详细了.Plupload的上传原理简单点说,就是将用户选中的文件(可多个)分隔成一个个小块,依次向服务 ...

最新文章

  1. 23种设计模式C++源码与UML实现--模板模式
  2. 使用 wxImage 为 OpenGL 加载纹理
  3. 软件体系结构C2风格
  4. 网上商城—管理员修改商品
  5. 14行代码AC_SCU 4440 Rectangle(公式+矩阵对称性)
  6. 如何在Windows、Linux中获取主机的网络信息和公网地址
  7. 为什么要学习Java EE?需要掌握哪些技能?
  8. android dex2oatd e,解決android項目Error:Execution failed for task ':app:dexDebug'.ebug'錯誤
  9. java做文件显示器_JavaWeb显示器
  10. 微信电脑版调整字体大小的办法
  11. VGG16网络,VGG19
  12. 2020年注册电气工程师基础考试大纲:公共基础(供配电、发输变电相同)
  13. qt qml StackView 触摸滑动返回(swiping pop)
  14. 我新鲜出炉的 plist 图集拆图工具!github
  15. python14-前端之CSS
  16. 315成央视盛宴是中国媒体的悲哀
  17. 虚拟opc服务器软件,OPC Server
  18. 微信小程序——校园服务小程序(二)校园论坛加预约理发服务
  19. oppoR17手机计算机的隐藏功能,oppor17怎么隐藏应用?oppor17隐藏应用教程
  20. Python就业可选方向有哪些?带你了解Python主流职业选择!

热门文章

  1. 十一、高斯混合模型(Gaussian Mixed Model, GMM)
  2. OPPO AI Lab 核心岗位开放招聘:至美之路,等你加入!
  3. 简单的纯JS小游戏--消灭星星
  4. 【JavaWeb】AJAX
  5. SEO集思广益,如何做到效果最佳?
  6. 云米科技的未来,谈不上乐观
  7. 【2012年中山纪念中学信息学竞赛初一选拔赛一】美丽的纪中(a)
  8. SQL - 连接表(多表查询)
  9. ubc本科计算机雅思要求,加拿大各大学的雅思要求
  10. 我对计算机网络技术的理解,对计算机网络技术课程学习几点思考.doc