本帖最后由 Joe.xu 于 2021-5-24 17:51 编辑
我使用情景为: 在活字格中,我用手机上传图片,之后我在数据库中存储一张图片,这张图片用base64流的方式,直接存储在数据库中。这种方式就类似于之前有人对接的高拍仪,高拍仪直接拍照,显示在页面中,然后直接在前端页面将这个图片的base64流存入数据库对应的图片字段里。
烦请老师帮忙修改附件中的代码,谢谢!(我附件中的代码发现将图片转换为base64流的效率慢,最好能帮忙用活字格接口中转换方式应可以好些?)
参考 网上用 Javascript 将图片转换为base64的代码为以下,但发现要指定读取这图片的路径的 : var img = "imgurl"; //imgurl 就是你的图片路径
以下在活字格设计器代码在执行时发现是没问题,但用活字格发布编译发布后将会出错,因路径发生变化了, 故请教如何修改Javascript 达成可以用活字格发布时也可读取路径 , 即如何修改 可以在代码中直接读取活字格服务端的图片路径?
var img = `http://${window.location.host}/Upload/`+Forguncy.Page.getCell("jpg").getValue();
------以下为完整 Javascript 将图片转换为base64的代码
var img = `http://${window.location.host}/Upload/`+Forguncy.Page.getCell("jpg").getValue();
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 ext = img.src.substring(img.src.lastIndexOf(".")+1).toLowerCase();
var dataURL = canvas.toDataURL("image/"+ext);
return dataURL;
}
var image = new Image();
image.src = img;
image.onload = function(){
var base64 = getBase64Image(image);
console.log(base64);
Forguncy.Page.getCell('touxiang').setValue(base64);
}
|