所用插件: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. 使用Aspose.Word的基础知识整理

    var doc = new Document(path);     doc.AcceptAllRevisions();//接受所有修订

  2. 大整数相乘的C实现

    //之前有个测试这个题没做完,现在把它做完,通过这个程序可以对乘法了解更深刻.分析:运用整数乘法,当然进制越高越好,考虑到乘法不要越界,故考虑进制底数N应该满 //足,N^2<2^32次方.所以 ...

  3. SQL 能做什么?

    SQL 能做什么? SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库中插入新的记录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL ...

  4. QML学习:Rectangle,Text,TextEdit,Flickable,Flipable元素

    QML学习:Rectangle,Text,TextEdit,Flickable,Flipable元素 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 参 ...

  5. python手记(32)

    #!/usr/bin/env python #-*- coding: utf-8 -*- import cv2 import numpy as np fn="test2.jpg" ...

  6. python换行写入文件

    今天用python做写入文件时,碰到,写入的东西不能换行,打开写入的文件都是一行.后来发现需要在写入的字符后面加上+'\n'. 另外python需要追加写入文件的时候,是用这个方法f = open(' ...

  7. Light OJ 1036 - A Refining Company

    题目大意: 一个m*n的矩阵,里面有两种矿物质铀和镭,现在要把铀和镭运送到指定位置.北边是炼镭厂,西边是了炼铀厂. 现在要建立传送带,传送带有两种,一种是从东到西,另一种是从南到北,传送带不能交叉,并 ...

  8. 【转】蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法--不错

    原文网址:http://blog.csdn.net/mzy202/article/details/32408223 蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet ...

  9. XCode4 下制作Framework的方法

    http://www.cocoachina.com/bbs/read.php?tid-75680-page-1.html

  10. [转]让程序在崩溃时体面的退出之SEH

    原文地址:http://blog.csdn.net/starlee/article/details/6636723 SEH的全称是Structured Exception Handling,是Wind ...