angularjs结合plupload实现文件上传
转载注明:(罗志强的博客)
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 = Comment
link: 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
angularjs结合plupload实现文件上传的更多相关文章
- Node开发文件上传系统及向七牛云存储和亚马逊AWS S3的文件上传
背景起,有奏乐: 有伟人曰:学习技能的最好途径莫过于理论与实践相结合. 初学Node这货时,每每读教程必会Fall asleep. 当真要开发系统时,顿觉精神百倍,即便踩坑无数也不失斗志. 因为同团队 ...
- 文件上传插件 -- plupload
refresh:重新实例化uploader removeFile(id):从file中移除某个文件 splice(start,length):从队列中start开始删除length个文件, 返回被删除 ...
- Plupload文件上传组件使用API
Plupload有以下功能和特点: 1.拥有多种上传方式:HTML5.flash.silverlight以及传统的<input type=”file” />.Plupload会自动侦测当前 ...
- 多文件上传artDialog+plupload
一.效果展示 包括文件上传面板以及文件上传列表 二.介绍 长话短说,采用spring springMVC mybatis maven mysql,实现多文件上传功能,下载使用的是流的形式. 其中涉及的 ...
- plupload+struts2实现文件上传下载
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" ...
- plupload文件上传插件
一 资源文档 二 基本使用 三 可能遇到的问题 一 资源文档 Git仓库地址:https://github.com/moxiecode/plupload 一个中文速查:http://www.cnblo ...
- 多图片/文件上传 - SwfUpload/PlUpload
<文件上传利器SWFUpload使用指南> <前端上传组件Plupload使用指南>
- web 文件上传组件 Plupload
Plupload官网:点击打开链接 建议下载最新版本号,低版本号会出现浏览器兼容问题. 近期公司有个项目须要在web端使用多文件上传功能.刚開始准备使用HTML5来做.但是IE9下面是都不支持的, ...
- 使用PLupload在同一页面中进行多个不同类型上传解决方案和一次多文件上传的注意事项
首先感谢,http://www.cnblogs.com/2050/p/3913184.html 这篇文章作者. 在使用PLUpload之前个人先封装了一些常用配置,并且将success与error做为 ...
随机推荐
- 带你玩转JavaScript中的隐式强制类型转换
正题开始前我想先抛出一个问题,==和===有什么区别?可能一般人会想,不就是后者除了比较值相等之外还会比较类型是否相等嘛,有什么好问的,谁不知道?!但是这样说还不够准确,两者的真正区别其实是==在比较 ...
- 王者荣耀交流协会 - 第6次Scrum会议
Scrum master :刘耀泽 补充:由于上次的scrum会议博客没有按时交上去,因此在这里给出上次scrum会议的链接: http://www.cnblogs.com/rensijia/p/76 ...
- 使用C和C++实现“电梯”的区别
C 面向过程: 该电梯不允许未卜先知,故程序需逐条处理乘客请求并更新当前各变量状态. 如何获得最短时间:是否立即响应请求,计算出不同决策下的总时间,并进行比较,然后选择最短时间 ...
- 已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数
#include<iostream> using namespace std; //#define maxn 2000010 #include<stdio.h> //int a ...
- Java包名命名规则(转载)
转载自:http://lilinhai548.blog.163.com/blog/static/5847332920155132151359/ 鸣谢原作者 学习Java的童鞋们都知道,Java的包. ...
- SQL Server 一些操作语句
查询表结构---sp_help 表名 或 sp_columns 表名 删表 -------drop table 表名删表中所有的数据----------truncate table 表名根据条件删表 ...
- Jarvis OJ平台basic部分wirteup
Base64? 题目描述: GUYDIMZVGQ2DMN3CGRQTONJXGM3TINLGG42DGMZXGM3TINLGGY4DGNBXGYZTGNLGGY3DGNBWMU3WI=== Base3 ...
- php对二维数组排序
function my_sort($arrays,$sort_key,$sort_order=SORT_DESC,$sort_type=SORT_NUMERIC ){ if(is_array($arr ...
- 移植spdylay到libcurl
Libcurl是第三方网络库,支持各种网络协议 SPDY是Google提出的用来替代HTTP1.1的网络协议, 目前google.com, facebook.com, twitter.com服务器端都 ...
- 【转】mysql force Index 强制索引
其他强制操作,优先操作如下: mysql常用的hint 对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法.同样,在mysql里,也有类似的h ...