博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
chrome用type=file获取图片路径并转base64字符串
阅读量:4641 次
发布时间:2019-06-09

本文共 1606 字,大约阅读时间需要 5 分钟。

 

 

1 html页面

<div class="col-sm-2" style="height: 200px;margin-top: 14px;">

<input id="photo" name=" " type="file" value="选择图片"  ng-model="photoUrl">
<input type="button" ng-click = "uploadPic()" value="确定" style="margin-top: 150px;margin-left: 10px;"/>
</div>

2 js里面

$scope.uploadPic = function(){

var obj = document.getElementById("photo");
console.log("13:"+obj.value)
if(obj.value){
var file = obj.files[0]

//注意此处,chrome不支持直接获取文件的绝对路径,需要把文件放到一个中间地址,然后用js获取这个中间地址的绝对路径

var windowURL = window.URL || window.webkitURL;  
   var dataURL = windowURL.createObjectURL(file); 
console.log($('#img1'))
console.log(dataURL)
 $('#img1').attr('src',dataURL)
var img = document.createElement('img');
img.src = dataURL;

以上是在中间地址放文件的逻辑

var data
img.onload =function() {

//转base64

data = getBase64Image(img);
console.log("changdu:"+data.length);

一般浏览器对提交字符串有大小限制,要限定一下,要不会报错

if(data.length<1050000){
console.log(data);
$('#img1').attr('src',data)
$scope.pic = {};
$scope.pic.idPark = idPark;
$scope.pic.picture = data;
dataParkSettingAdmin.saveOrUpdateParkPicture(idPark,$scope.pic).success(function(data) {
console.log("shangchuantupian:"+data.result);
})
}else{
app.modalWin.info({title:' ', content:'该图片不支持上传' });
}
}
}
}

以下是图片转base64字符串的函数

function getBase64Image(img) {
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, img.width, img.height);
var dataURL = canvas.toDataURL("image/png");
return dataURL // return dataURL.replace("data:image/png;base64,", "");
}

转载于:https://www.cnblogs.com/zhaoblog/p/6534299.html

你可能感兴趣的文章
新的一年,新的开始
查看>>
python模块struct
查看>>
图像的灰度级和动态范围(转)
查看>>
C# MODBUS协议 上位机(转)
查看>>
CSS box-shadow 属性
查看>>
vue:图片切换动态显示
查看>>
备忘录
查看>>
软件工程个人作业02
查看>>
vue-router导航守卫,限制页面访问权限
查看>>
2019 Multi-University Training Contest 1 - 1012 - NTT
查看>>
浏览器调试淘宝首页看到有趣的招聘信息
查看>>
ASP.NET Identity “角色-权限”管理 4
查看>>
[转][译]ASP.NET MVC 4 移动特性
查看>>
SOC CPU
查看>>
get_result --perl
查看>>
163镜像地址
查看>>
ehcache memcache redis 三大缓存男高音
查看>>
eclipse 快捷键Open Implementation 直接退出
查看>>
minix中管道文件和设备文件的读写
查看>>
JAXB - Annotations, Annotations for Enums: XmlEnum, XmlEnumValue
查看>>