通过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的上传图片
# 图片展示
# js生成缩略图后上传并利用canvas重绘
# 图片上传即时显示缩略图的js代码
# js实现上传按钮并显示缩略图小轮子
# 您的
# 创建一个
# 随机数
# 都要
# 多个
# 键名
# 说了
# 完毕后
# 不多
# 或其他
# 解决问题
# 如图
# 绑定
# 转成
# 大家多多
# 图片上传
# 后期
# 最终用户
# 是为了
# 和服务
相关文章:
如何设置并定期更换建站之星安全管理员密码?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
常州企业网站制作公司,全国继续教育网怎么登录?
html制作网站的步骤有哪些,iapp如何添加网页?
如何选择适配移动端的WAP自助建站平台?
如何在阿里云服务器自主搭建网站?
,怎么用自己头像做动态表情包?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
建站org新手必看:2024最新搭建流程与模板选择技巧
网站好制作吗知乎,网站开发好学吗?有什么技巧?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
建站之星微信建站一键生成小程序+多端营销系统
网站制作壁纸教程视频,电脑壁纸网站?
Python路径拼接规范_跨平台处理说明【指导】
定制建站流程解析:需求评估与SEO优化功能开发指南
,sp开头的版面叫什么?
公众号网站制作网页,微信公众号怎么制作?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
为什么Go需要go mod文件_Go go mod文件作用说明
c# 在ASP.NET Core中管理和取消后台任务
高防服务器租用指南:配置选择与快速部署攻略
北京网站制作的公司有哪些,北京白云观官方网站?
如何用PHP快速搭建CMS系统?
如何有效防御Web建站篡改攻击?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
高端网站建设与定制开发一站式解决方案 中企动力
如何用免费手机建站系统零基础打造专业网站?
javascript中的try catch异常捕获机制用法分析
如何用wdcp快速搭建高效网站?
如何在IIS中新建站点并配置端口与物理路径?
如何高效完成自助建站业务培训?
建站之星如何修改网站生成路径?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
如何高效完成独享虚拟主机建站?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
如何高效搭建专业期货交易平台网站?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何使用Golang安装API文档生成工具_快速生成接口文档
建站之星如何保障用户数据免受黑客入侵?
如何设计高效校园网站?
如何在云主机上快速搭建网站?
建站主机如何选?高性价比方案全解析
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
如何快速搭建自助建站会员专属系统?
济南企业网站制作公司,济南社保单位网上缴费步骤?
网站制作难吗安全吗,做一个网站需要多久时间?
建站主机类型有哪些?如何正确选型
表情包在线制作网站免费,表情包怎么弄?
海南网站制作公司有哪些,海口网是哪家的?
*请认真填写需求信息,我们会在24小时内与您取得联系。