如何使用角度js上传照片?

时间:2016-02-04 15:00:13

标签: angularjs

我正试着用angular进行上传。我正在使用这个plunkr http://plnkr.co/edit/qLckEIlNLEcIfvwn4Q5x?p=preview

我应该在这里写什么如果我想在项目文件夹中上传照片:

element.fileupload({
              dataType: 'json',
              url: './api',
              done: function(e, data) {
                $log.log("done accessed");
              },
              fail: function(e, data) {
                $log.log("fail accessed");
              },
              progress: function(e, data) {
                options.progress = parseInt(data.loaded / data.total * 100, 10);
                scope.$apply();
                $log.log(options)
                $log.log("progress");
              },
              //add: function(e,data){
              //$log.log("add accessed");
              //},
              submit: function(e, data) {
                $log.log("notetext:", options.notetext);
                data.formData = {
                  Description: options.notetext
                };
                $log.log("submit accessed");
              }
            });

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用HTML5 API,即FileReader jsfiddle:

http://jsfiddle.net/f8Hee/1/

HTML非常简单:

<input type="file" id="file" name="file"/>
<button ng-click="add()">Add</button>

在你的控制器中定义'add'方法:

$scope.add = function(){
  var f = document.getElementById('file').files[0],
      r = new FileReader();
  r.onloadend = function(e){
    var data = e.target.result;
    //send you binary data via $http or $resource or do anything else with it
  }
  r.readAsBinaryString(f);
}

浏览器兼容性

桌面浏览器

  

Firefox(Gecko)3.6(1.9.2),Chrome 7,Internet   Explorer * 10,Opera * 12.02,Safari 6.0.2

移动浏览器

  

Firefox(Gecko)32,   Chrome 3,   Internet Explorer * 10,   歌剧* 11.5,   Safari 6.1

注意:不推荐使用readAsBinaryString()方法,而应使用readAsArrayBuffer()

快乐帮助!