所用插件:angular-file-upload

这个插件用到的几个指令:nv-file-select(点击选择)、uploader(用于绑定控制器中新建的uploader对象)

HTML:

 <div>
<h4>坐标上传</h4>
<span>{{warningMessage}}</span>
<div>
<input type="text" ng-model="displayName" placeholder="请输入显示名称,不超过25个字符" maxlength="25" />
<div>
<input type="file" id="uploader_input" accept="application/text/plain" nv-file-select uploader="uploader" />
<div ><button class="attachment_upload_btn"><span>浏览</span></button></div>
</div>
</div>
<div class="modal-footer">
<button ng-click="uploadAll()">导入</button>
</div>
</div>

控制器文件:

 var app=angular.module('app',['angularFileUpload']);
app.controller('Upload-controller',['$scope','FileUploader',function($scope,FileUploader){
var uploader = $scope.uploader = new FileUploader({
url: 'upload.php',
queueLimit: 1, //文件个数
removeAfterUpload: true, //上传后删除文件
autoUpload:false //不自动上传
});
//增加相应的过滤(TXT文本过滤)
uploader.filters.push({
name: 'formatFilter',
fn:funciton(item,options){
var type = '|' + item.type.slice(item.type.lastIndexOf('/') + 1) + '|';
return '|plain|'.indexOf(type) !== -1;
}
});
//增加相应的过滤(大小过滤10M)
uploader.filters.push({
name: 'sizeFilter',
fn:funciton(item,options){
var filesize= item.size/1024/1024;
if(filesize<=10){
return true;
}else{
return false;
}
}
});
//不满足过滤条件
uploader.onWhenAddingFileFailed=function(item,filter,options){
$scope.uploader.clearQueue();
if(filter.name=='formatFilter'){
//如果名为formatFilter的过滤失败的话,下面做一些操作
$scope.warningMessage = '请导入TXT格式文件。';
return;
}
if(filter.name=='sizeFilter'){
$scope.warningMessage = '请导入小于10MB的文件';
//如果名为sizeFilter的过滤失败的话,下面做一些操作
return;
}
}
//重新选择文件时,清空队列,达到覆盖文件的效果
$scope.clearItems = function(){
uploader.clearQueue();
}
//增加文件后,将文件名复制给相应字段
$scope.onAfterAddingFile=function(fileItem){
$scope.displayName=fileItem.file.name;
}
//上传成功后,将服务端信息赋值给前端
$scope.onSuccessItem=function(fileItem, response, status, headers){
//response 服务端返回值
}
$scope.uploadAll = function () {
uploader.uploadAll();
}
}])

accept取值类型列表:

 * accept="application/msexcel"

 * accept="application/msword"

 * accept="application/pdf"

 * accept="application/poscript"

 * accept="application/rtf"

 * accept="application/x-zip-compressed"

 * accept="audio/basic"

 * accept="audio/x-aiff"

 * accept="audio/x-mpeg"

 * accept="audio/x-pn/realaudio"

 * accept="audio/x-waw"

 * accept="image/*"

 * accept="image/gif"

 * accept="image/jpeg"

 * accept="image/tiff"

 * accept="image/x-ms-bmp"

 * accept="image/x-photo-cd"

 * accept="image/x-png"

 * accept="image/x-portablebitmap"

 * accept="image/x-portable-greymap"

 * accept="image/x-portable-pixmap"

 * accept="image/x-rgb"

 * accept="text/html"

 * accept="text/plain"

 * accept="video/quicktime"

 * accept="video/x-mpeg2"

 * accept="video/x-msvideo"

 

Angularjs总结(六) 上传附件的更多相关文章

  1. wordpress多站点环境设置上传附件大小

    多站点环境更改上传附件大小: php.ini post_max_size = 8M upload_max_filesize = 10M 另外,后台域名管理中设置/网络设置/可以设置上传文件大小. 代码 ...

  2. jquery 通过ajax FormData 对象上传附件

    之前上传附件都是用插件,或者用form表单体检(这个是很久以前的方式了),今天突发奇想,自己来实现附件上传,具体实现如下 html: <div>   流程图: <input id=& ...

  3. Discuz! X论坛上传附件到100%自动取消上传的原因及解决方案

    最近接到一些站长的反馈,说论坛上传附件,到100%的时候自己取消上传了.经查是附件索引表pre_forum_attachment表的aid字段自增值出现了问题,导致程序逻辑返回的aid值实际为一个My ...

  4. Discuz模拟批量上传附件发帖

    简介 对于很多用discuz做资源下载站来说,一个个上传附件,发帖是很繁琐的过程.如果需要批量上传附件发帖,就需要去模拟discuz 上传附件的流程. 模拟上传 discuz 附件逻辑 dz附件储存在 ...

  5. 修改WordPress中上传附件2M大小限制的方法/php+iis上传附件默认大小修改方法

    在服务器上架设好WordPress后,使用过程中发现,上传附件大小有2M的限制 话说服务器就是本机,可以直接把文件拖到附件存储文件夹下,然后在需要附件的地方引用链接 可是这种落后的方法终究不是办法,还 ...

  6. Dynamic CRM 2013学习笔记(十三)附件上传 / 上传附件

    上传附件可能是CRM里比较常用的一个需求了,本文将介绍如何在CRM里实现附件的上传.显示及下载.包括以下几个步骤: 附件上传的web页面 附件显示及下载的附件实体 调用上传web页面的JS文件 实体上 ...

  7. 怎样解决asp.net.mvc上传附件超过长度问题?

    最近,在做一个上传附件功能,但是文件超过4M,就报上传的文件超过长度问题

  8. JQuery Uplodify上传附件(同一个页面多个uplodify控件解决方案)

    功能描述:实现同一页面中多个不同附件的上传保存,且做到最大程度的减少代码修改量(最大程度的公用),为了方便实现垃圾数据和垃圾文件的处理,项目采用临时文件夹的方式:即:文件自动上传先保存到临时文件夹下, ...

  9. crm 4 注释与上传附件权限

    文档注释权限及上传附件是与实体的”追加到”权限有关. 文档注释权限及上传附件是与核心记录中”注释”的”追加”权限有关. 追加及追加到的权限,我的理解是与本实体有关联的实体的权限,比如你引用了其它表的字 ...

  10. discuz 模拟批量上传附件发帖

    discuz 模拟批量上传附件发帖 简介 对于很多用discuz做资源下载站来说,一个个上传附件,发帖是很繁琐的过程.如果需要批量上传附件发帖,就需要去模拟discuz 上传附件的流程. 插件地址 h ...

随机推荐

  1. ifstream文件尾最后一行读两次

    看下面一段代码:       ifstream m_fileConfig;     string str;     m_fileConfig.open(FILE_OPERATORS, ios::out ...

  2. Spring dataSource

    1.何为dataSource DataSource 接口是 JDBC 2.0 API 中的新增内容,它提供了连接到数据源的另一种方法. 作为 DriverManager 工具的替代项,DataSour ...

  3. 【HDOJ】3221 Brute-force Algorithm

    归来吧很好推导.T(n) = a^f(n-1)*b^f(n)%p.主要难点在于求mod和fibo.引用如下公式A^B%C = A^(B%phi(C) + phi(C))%C, 满足B>=phi( ...

  4. Image Builder, 快速固件生成器

    Image Builder, 快速固件生成器, 用此创建固件可以省去重新编译的麻烦,大大缩短编译时间. 利用 Imagebuilder 可以生成自己所需要的固件, 告别和别人伸手乞讨固件的磨练 1. ...

  5. Android adb opendir failed ,permission denied

    最近在使用adb命令ls的时候会提示:adb opendir failed ,permission denied , 解决方法: adb shell cd data/data/pakageName l ...

  6. ServiceStack.Redis常用操作 - 事务、并发锁

    一.事务 使用IRedisClient执行事务示例: using (IRedisClient RClient = prcm.GetClient()) { RClient.Add("key&q ...

  7. jQuery zxxbox弹出框插件(v3.0)

    插件地址: http://www.zhangxinxu.com/study/201009/jquery-zxxbox-v3-demo.html

  8. Linux下把U盘格式化为fat32

    在linux下也是支持fat32的,如果U盘中了病毒可以插入linux系统进行格式化比较安全,下面介绍如何在linux下把u盘格式化为fat32的方法 一.执行fdisk -l查看linux设备,我的 ...

  9. Delphi安装/卸载OCX控件的方法

    delphi  安装卸载ocx 请参见 如下 http://blog.csdn.net/xt_chaoji/article/details/7027298 打开Delphi,关闭所有项目. 1.    ...

  10. CentOS下安装gcc和gdb

    我的操作系统是CentOS6.4,安装源里自带了gcc4.4.0和gdb7.0,版本略老遂删除之重新安装. gcc 1.下载源码包,解压 //下载 wget http: //ftp.gnu.org/g ...