JS前端转换本地图片路径为base64,请问怎么实现,不能file. input上传
路径如下:
file:///C:/Users/XIAORU~1/AppData/Local/Temp/ksohtml13208/wps80.jpg
JS前端转换本地图片路径为base64,请问怎么实现,不能file. input上传
路径如下:
file:///C:/Users/XIAORU~1/AppData/Local/Temp/ksohtml13208/wps80.jpg
关注由于浏览器安全限制的原因,js是默认无法直接操作本地文件的,给你一个input的方式和只能运行在IE直接读取本地文件:
<input class="ut myHide" id="uploadFile" name="uploadFile" type="file" onchange="btnUploadFile(event)" />
<script>
function btnUploadFile(e){
//获取图片文件
var imgFile = e.target.files[0];
changeFileIntoBase64(imgFile).then(function(res){
console.log(res);
})
}
/**
* @description 转换文件成base64数据
* @param {Object} file - 文件对象
*/
function changeFileIntoBase64(file) {
return new Promise((resolve, reject) => {
const fr = new FileReader();
fr.readAsDataURL(file);
fr.onload = (result) => {
const base64Str = result.currentTarget.result;
resolve(base64Str);
};
});
}
</script>
只兼容id,直接读取本地:
```javascript
<script>
var fso = new ActiveXObject('Scripting.FileSystemObject')
var fileName = 'C:\\Users\\Lenovo\\Desktop\\ai\\1.png'
var Filesss = fso.GetFile(fileName)
var base64str
var x = new ActiveXObject('Msxml2.XMLHTTP.6.0')
x.onreadystatechange = function(){
if(x.readyState < 4) return
var xml_dom = new ActiveXObject('MSXML2.DOMDocument')
var tmpNode = xml_dom.createElement('tmpNode')
tmpNode.dataType = 'bin.base64'
tmpNode.nodeTypedValue = x.responseBody
base64str = tmpNode.text.replace(/\n/g,'')
}
x.open('get',fileName,true)
x.send('')
console.log(base64str)
</script>
```