github连接地址:https://github.com/danialfarid/ng-file-upload

核心代码:

html:

<div class="form-group">

                <label>源文件:</label>

                <input class="form-control h30 w356"  ng-model="data.filePath"/>

                <select class="form-control h30 w143">

                    <option value="">1</option>

                    <option value="">2</option>

                </select>

                <div class="button" ngf-select="fileChanged($file)">Upload on file select</div>

            </div>

js:

//var app = angular.module('main.app', ['bw.paging', 'cbc.datePicker', 'ngFileUpload']);

//app.controller('main-controller', function ($scope, $http, $log, $rootScope,
Upload) {

$scope.fileChanged = function (file) {

        Upload.upload({

            url: '/ImportSettlement/Upload',

            data: { file: file }

        }).then(function (resp) {

            console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);

        }, function (resp) {

            console.log('Error status: ' + resp.status);

        });

    }

后台代码:

[HttpPost]

        public ActionResult Upload(HttpPostedFileBase file)

        {

            if (file == null)

            {

                return Content("没有文件!", "text/plain");

            }

            var fileName = Path.Combine(Request.MapPath("~/Upload"), Path.GetFileName(file.FileName));

            try

            {

                return Content("上传异常 !", "text/plain");

                //file.SaveAs(fileName);

                ////tm.AttachmentPath = fileName;//得到全部model信息

                //tm.AttachmentPath = "../upload/" + Path.GetFileName(file.FileName);

                ////return Content("上传成功!", "text/plain");

                //return RedirectToAction("Show", tm);

            }

            catch

            {

                return Content("上传异常 !", "text/plain");

            }

        }

上述代码兼容IE10及以上浏览器,兼容IE9代码如下:

Html:

引入ng-upload-file组件

<script src="/Scripts/angular/FileUpload/ng-file-upload.min.js"></script>

<script>

    //optional need to be loaded before angular-file-upload-shim(.min).js

    FileAPI = {

        debug: true,

//                forceLoad: true,

//                html5: false, //to debug flash in HTML5 browsers

        jsUrl: '/Scripts/angular/FileUpload/FileAPI.min.js',

        flashUrl: '/Scripts/angular/FileUpload/FileAPI.flash.swf',

    };

</script>

  <!--  for no html5 browsers support -->

<script src="/Scripts/angular/FileUpload/ng-file-upload-shim.min.js"></script>

--------------------上传部分

<div class="button" ngf-select="fileChanged($file)">Upload on file select</div>

js执行

//var app = angular.module('main.app', ['bw.paging', 'cbc.datePicker', 'ngFileUpload']);

//app.controller('main-controller', function ($scope, $http, $log, $rootScope, Upload) {

$scope.fileChanged = function (file) {

        Upload.upload({

            url: '/ImportSettlement/Upload',

            data: { file: file }

        }).then(function (resp) {

            console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data);

        }, function (resp) {

            console.log('Error status: ' + resp.status);

        });

    }


后台接收:

[HttpPost]

        public ActionResult Upload(HttpPostedFileBase file)

        {

            if (file == null)

            {

                return Content("没有文件!", "text/plain");

            }

            var fileName = Path.Combine(Request.MapPath("~/Upload"), Path.GetFileName(file.FileName));

            try

            {

                return Content("上传异常 !", "text/plain");

                //file.SaveAs(fileName);

                ////tm.AttachmentPath = fileName;//得到全部model信息

                //tm.AttachmentPath = "../upload/" + Path.GetFileName(file.FileName);

                ////return Content("上传成功!", "text/plain");

                //return RedirectToAction("Show", tm);

            }

            catch

            {

                return Content("上传异常 !", "text/plain");

            }

其他相关

http://www.cnblogs.com/zhouhb/p/3906714.html

http://www.cnblogs.com/zhangxiaolei521/p/5985790.html

angularjs 文件上传的更多相关文章

  1. angularjs 文件上传 如何绑定file表单的change?

    ng-change 会失灵 , 唯一的解决方式 是 onchange="angular.element(this).scope().fileNameChanged()"然后利用 n ...

  2. webAPI+angularJS文件上传和下载

    开发框架 前端 angularJS1.6 下载和保存文件FileSaver:https://github.com/eligrey/FileSaver.js/ 后端 .net WebAPI 1 导入Ex ...

  3. AngularJs 文件上传(实现Multipart/form-data 文件的上传)

    <!-- 上传yml文件 --> <div class="blackBoard" ng-show="vm.showUpop==true"> ...

  4. [Angularjs]ng-file-upload上传文件

    写在前面 最近在弄文档库的H5版,就查找了下相关的上传组件,发现了ng-upload的东东,推荐给大家. 系列文章 [Angularjs]ng-select和ng-options [Angularjs ...

  5. AngularJs附件上传下载

    首先:angular-file-upload 是一款轻量级的 AngularJS 文件上传工具,为不支持浏览器的 FileAPI polyfill 设计,使用 HTML5 直接进行文件上传. 第一步: ...

  6. angularjs结合plupload实现文件上传

    转载注明:(罗志强的博客) angularjs的指令directive非常好使,可以很方便的结合各种插件,实现很强大的功能. 今天用到了plupload,就拿它举例吧. 正常的plupload用法应该 ...

  7. [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表

    写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...

  8. jquery.uploadify文件上传组件

    1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...

  9. 11、Struts2 的文件上传和下载

    文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...

随机推荐

  1. “百度杯”CTF比赛 十月场-Getflag(md5碰撞+sql注入+网站绝对路径)

    进去md5碰撞,贴一下脚本代码 import hashlib def md5(value): return hashlib.md5(str(value).encode("utf-8" ...

  2. 两万字长文,彻底搞懂Kafka!

    1.为什么有消息系统 1.解耦合 2.异步处理 例如电商平台,秒杀活动. 一般流程会分为: 风险控制 库存锁定 生成订单 短信通知 更新数据 通过消息系统将秒杀活动业务拆分开,将不急需处理的业务放在后 ...

  3. [C++]-map 映射

    map用来存储排序后的由键和值组成的项的集合.键必须唯一,不同的键可以对应同一个值,在map中键保持逻辑排序后的顺序(以键为标准). 代码 #include<iostream> #incl ...

  4. jeesite中重启项目时用户头像丢失的疑惑

    jeesite中重启项目时用户头像丢失 使用的时候发现,在更换完头像以后,进行页面的刷新会将头像同步给各个位置,但是在系统重新载入的时候,会出现用户的头像加载不出来的情况,还是以demo为例 可以看到 ...

  5. 绕WAF常见思路整理(一)

    最*被*台的一些事情搞得心态有点崩,很久没写文了 *期想整理一下常见的各种操作中绕过WAF的思路与免杀的思路(这部分之前没整理完以后有机会再说),受限于个人水*因素所以一定是不完全的,而且在WAF日新 ...

  6. 简单实现Linux服务器重启后自动启动Tomcat以及MongoDB

    1.场景描述 做一个网站差不多都会用到tomcat,用阿里云镜像市场提供的镜像里的tomcat是方便的,但是自己喜欢折腾,所以就自己在服务器里装了一个tomcat 但是有一次服务器被关了,然后自己要到 ...

  7. [ES6深度解析]15:模块 Module

    JavaScript项目已经发展到令人瞠目结舌的规模,社区已经开发了用于大规模工作的工具.你需要的最基本的东西之一是一个模块系统,这是一种将你的工作分散到多个文件和目录的方法--但仍然要确保你的所有代 ...

  8. EZpop分析

    首先源代码如下 <?php class Modifier { protected $var; public function append($value){ include($value); } ...

  9. 物联网协议Coap协议介绍

    COAP协议简介 Coap(Constrained Application Protocol)是一种在物联网世界的类web协议,它的详细规范定义在 RFC 7252.COAP名字翻译来就是" ...

  10. PsSetCreateProcessNotifyRoutineEx 创建回调函数

    转载自http://blog.csdn.net/yushiqiang1688/article/details/5209597 最近要做一个进程监控的程序,功能很简单,就是创建和退出进程的时候,能触发我 ...