通过AngularJS实现图片上传及缩略图展示示例


Posted in Javascript onJanuary 03, 2017

通过AngularJS实现图片上传及缩略图展示示例,废话不多说了,具体如下:

从项目中截出的代码

HTML部分:

<section>
  <img src="image/user-tuijian/tuijian_banner.png" />
  <div>
    <form ng-submit="submit_form()">
      <input type="text" name="aaa" placeholder="商品名称:" ng-model="form.goods_name" />
      <input type="text" name="bbb" placeholder="商品网址:" ng-model="form.goods_url" />
      <textarea placeholder="您宝贵的留言就是我们前进的动力!" ng-model="form.user_msg"></textarea>
      <div>
        <div ng-repeat="item in thumb">
        <!-- 采用angular循环的方式,对存入thumb的图片进行展示 -->
          <label>
            <img ng-src="{{item.imgSrc}}"/>
          </label>
          <span ng-if="item.imgSrc" ng-click="img_del($index)"></span>
        </div>
        <div ng-repeat="item in thumb_default">
        <!-- 这里之所以写个循环,是为了后期万一需要多个‘加号'框 -->
          <label>
            <input type="file" id="one-input" accept="image/*" file-model="images" onchange="angular.element(this).scope().img_upload(this.files)"/>
          </label>
        </div>
      </div>
      <p>(*^_^*)请详细描述您的需求,有助于我们快速定位并解决问题,希望我们的产品和服务能得到您的肯定。</p>
      <input type="submit" name="" value="提 交" />
    </form>
  </div>
</section>

JS部分:

Module.controller('controlName', ['$scope', '$http', function($scope, $http) {
  $scope.reader = new FileReader();  //创建一个FileReader接口
  $scope.form = {   //用于绑定提交内容,图片或其他数据
    image:{},
  };
  $scope.thumb = {};   //用于存放图片的base64
  $scope.thumb_default = {  //用于循环默认的‘加号'添加图片的框
    1111:{}
  };

  $scope.img_upload = function(files) {    //单次提交图片的函数
    $scope.guid = (new Date()).valueOf();  //通过时间戳创建一个随机数,作为键名使用
    $scope.reader.readAsDataURL(files[0]); //FileReader的方法,把图片转成base64
    $scope.reader.onload = function(ev) {
      $scope.$apply(function(){
        $scope.thumb[$scope.guid] = {
          imgSrc : ev.target.result, //接收base64
        }
      });
    };
    
    var data = new FormData();   //以下为像后台提交图片数据
    data.append('image', files[0]);
    data.append('guid',$scope.guid);
    $http({
      method: 'post',
      url: '/comm/test-upload.php?action=success',
      data:data,
      headers: {'Content-Type': undefined},
      transformRequest: angular.identity
    }).success(function(data) {
      if (data.result_code == 'SUCCESS') {
        $scope.form.image[data.guid] = data.result_value;
        $scope.thumb[data.guid].status = 'SUCCESS';
        console.log($scope.form)
      }
      if(data.result_code == 'FAIL'){
        console.log(data)
      }
    })
  };

  $scope.img_del = function(key) {  //删除,删除的时候thumb和form里面的图片数据都要删除,避免提交不必要的
    var guidArr = [];
    for(var p in $scope.thumb){
      guidArr.push(p);
    }
    delete $scope.thumb[guidArr[key]];
    delete $scope.form.image[guidArr[key]];
  };
  $scope.submit_form = function(){  //图片选择完毕后的提交,这个提交并没有提交前面的图片数据,只是提交用户操作完毕后,











到底要上传哪些,通过提交键名或者链接,后台来判断最终用户的选择,整个思路也是如此
    $http({
      method: 'post',
      url: '/comm/test.php',
      data:$scope.form,
    }).success(function(data) {
      console.log(data);  
    })
  };
}]);

最后的效果如图:

通过AngularJS实现图片上传及缩略图展示示例

通过AngularJS实现图片上传及缩略图展示示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 学习 - 提高篇
Feb 02 Javascript
javascript new 需不需要继续使用
Jul 02 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
Aug 23 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
Jan 14 Javascript
javascript中定义类的方法汇总
Dec 28 Javascript
JavaScript实现页面5秒后自动跳转的方法
Apr 16 Javascript
jquery获取节点名称
Apr 26 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
Sep 04 Javascript
easyui-combobox 实现简单的自动补全功能示例
Nov 08 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
Jun 12 Javascript
对node.js中render和send的用法详解
May 14 Javascript
微信小程序版本自动更新的方法
Jun 14 Javascript
DWR3 访问WEB元素的两种方法实例详解
Jan 03 #Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
Jan 03 #Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
Jan 03 #Javascript
非常优秀的JS图片轮播插件Swiper的用法
Jan 03 #Javascript
JavaScript对象封装的简单实现方法(3种方法)
Jan 03 #Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
Jan 03 #Javascript
vue.js将unix时间戳转换为自定义时间格式
Jan 03 #Javascript
You might like
zend framework配置操作数据库实例分析
2012/12/06 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
PHP7 新增常量
2021/03/09 PHP
JavaScript Konami Code 实现代码
2009/07/29 Javascript
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
把input初始值不写value的具体实现方法
2013/07/04 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
JS去除iframe滚动条的方法
2015/04/01 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
浅谈React高阶组件
2018/03/28 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
2018/04/12 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
微信小程序上线发布流程图文详解
2019/05/06 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
Python牛刀小试密码爆破
2011/02/03 Python
Python生成数字图片代码分享
2017/10/31 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
警察群众路线整改措施
2014/09/26 职场文书
护士自我推荐信范文
2015/03/24 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript