ajax - 上传 Angularjs 之前预览图像

标签 ajax angularjs file-upload upload angularjs-directive

嗨,我想知道在使用 angularjs 上传图像之前是否有办法预览图像?我正在使用这个库。 https://github.com/danialfarid/angular-file-upload

谢谢。这是我的代码:

模板.html

 <div ng-controller="picUploadCtr">
<form>
        <input type="text" ng-model="myModelObj">
      <input type="file" ng-file-select="onFileSelect($files)" >
 <input type="file" ng-file-select="onFileSelect($files)" multiple>

 </form>
     </div>

Controller .js

  .controller('picUploadCtr', function($scope, $http,$location, userSettingsService) {

 $scope.onFileSelect = function($files) {
//$files: an array of files selected, each file has name, size, and type.
for (var i = 0; i < $files.length; i++) {
  var $file = $files[i];
  $http.uploadFile({
    url: 'server/upload/url', //upload.php script, node.js route, or servlet uplaod url)
    data: {myObj: $scope.myModelObj},
    file: $file
  }).then(function(data, status, headers, config) {
    // file is uploaded successfully
    console.log(data);
  }); 
}
}

最佳答案

OdeToCode posted great service对于这个东西。因此,通过这个简单的指令,您可以轻松预览甚至看到进度条:

.directive("ngFileSelect",function(){    
  return {
    link: function($scope,el){          
      el.bind("change", function(e){          
        $scope.file = (e.srcElement || e.target).files[0];
        $scope.getFile();
      });          
    }        
  }

它适用于所有现代浏览器!

示例:http://plnkr.co/edit/y5n16v?p=preview

关于ajax - 上传 Angularjs 之前预览图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18754943/

相关文章:

php - 不存储 POST 数据 (json)

javascript - 如何在每个ajax调用上绑定(bind)开始和完成事件

php - 我可以发布使用 jquery 上传的文件的临时文件名吗

angularjs - Laravel 5 + AngularJS html5Mode

c# - Microsoft.Jet.OLEDB.4.0 提供程序未注册

php - 哪个是更好的做法?从 Jquery 响应获取 HTML

javascript - angularjs动态加载json语言文件

javascript - URL 重定向和重新加载在 Safari 和 IE 中不起作用

php - 使用 VueJS AJAX 和 Laravel 5.3 上传多个文件

javascript - 将自定义 header 添加到 Content-disposition 旁边的 FormData/multipart