<label> <img src="{{url}}" width="200" id="url" ng-model="pics.url"> </label> <input type="file" accept="image/png, image/jpeg, image/gif, image/jpg" alt="" onchange="angular.element(this).scope().changepic(this)"> <button class="btn" ng-click="Upload($event)">上传</button>
//重新选择图片的change事件
$scope.changepic = function (obj) { var newsrc = $scope.getObjectURL(obj.files[0]);
//给img元素src赋值 $(obj).siblings("label").children("img").attr("src", newsrc); } $scope.getObjectURL = function(file) { var url = null; // 下面函数执行的效果是一样的,只是需要针对不同的浏览器执行不同的 js 函数而已 if (window.createObjectURL != undefined) { // basic url = window.createObjectURL(file); } else if (window.URL != undefined) { // mozilla(firefox) url = window.URL.createObjectURL(file); } else if (window.webkitURL != undefined) { // webkit or chrome url = window.webkitURL.createObjectURL(file); } return url; }
//当上传完了之后需要清空file控件文件域的值 非常关键 再次选择相同图片的时候 因为上一次的值没有清空 选择相同的值就不change事件不会触发
//导致change事件里面给Img赋值的src就一直为空
$scope.clear = function () {
$("img").attr("src", ""); var fildom = '<input type="file" accept="image / png, image / jpeg, image / gif, image / jpg" alt="" onchange="angular.element(this).scope().changepic(this)">'; //元素替换
$("input[type=file").replaceWith(fildom); }
//图片上传方法
$scope.Upload = function (obj) { var file = $(obj.target).siblings("input[type=file]")[0].files; if (file.length==0) { return; } var name = file.name var uploadData = new FormData(); uploadData.append('file', file[0]); $.ajax({ url: '/Helper/UploadImg',//上传接口 type: 'POST', data: uploadData, processData: false, contentType: false, success: function (data) { if (data.errcode == 0) { var time = new Date().getTime(); //用于提供实时随机数 $(obj.target).siblings("label").children("img").attr("src", data.src + "?" + time); } else { layer.msg(data.src, { time: 2000 }) } } }); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)