业务场景:
有些业务,需要用户上传照片,我们要求是横拍,有些用户会不自觉拍成竖拍,或者不清晰,
难点:因为用户年龄层次较大,还有就是用户本身是义务劳动,无法去做强制管理
需求:需要让用户一旦上传不符合要求的图片,直接无法上传成功即可
业务场景:
有些业务,需要用户上传照片,我们要求是横拍,有些用户会不自觉拍成竖拍,或者不清晰,
难点:因为用户年龄层次较大,还有就是用户本身是义务劳动,无法去做强制管理
需求:需要让用户一旦上传不符合要求的图片,直接无法上传成功即可
frank.lin 2023-05-10 18:23:32明道云可以的,那是你自己参数传错了,把前后两个双引号去掉再试试
感谢大佬解决了
全耘伸 2023-05-10 15:47:58大佬牛逼,现在就是需要获取 64 代码,但是可恶的明道云不给我实现,大佬请看截图
明道云可以的,那是你自己参数传错了,把前后两个双引号去掉再试试
太好了,知道怎么获取 PNG 图片的长宽了,多谢。
求其他格式图片的 base64 解析方法。
frank.lin 2023-05-10 15:04:36我测试了以下可以的,用万能的 chatgpt,你就获取一下附件的 base64,判断一下格式,窜下流程就可以了
输入参数:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAABCAYAAAD0In+KAAAAE0lEQVQIHWNgYAAAAAMAASDsOGAoAAAAASUVORK5CYII=
代码块内容
var str = input.base64data;
var result = JSON.stringify(get_size(str));
output = {output:result };function get_size(base64) {
//确认处理的是 png 格式的数据
if (base64.substring(0,22) === 'data:image/png;base64,') {
// base64 是用四个字符来表示 3 个字节
// 我们只需要截取 base64 前 32 个字符(不计开头那 22 个字符)便可(24 / 3 * 4)
// 这里的 data 包含 12 个字符,9 个字节,除去第 1 个字节,后面 8 个字节就是我们想要的宽度和高度
const data = base64.substring(22 + 20, 22 + 32);
const base64Characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
const nums = [];
for (const c of data) {
nums.push(base64Characters.indexOf(c));
}
const bytes = [];
for(let i = 0; i < nums.length; i += 4) {
bytes.push((nums[i] << 2) + (nums[i+1] >> 4));
bytes.push(((nums[i+1] & 15) << 4) + (nums[i+2] >> 2));
bytes.push(((nums[i+2] & 3) << 6) + nums[i+3]);
}
const width = (bytes[1] << 24) + (bytes[2] << 16) + (bytes[3] << 8) + bytes[4];
const height = (bytes[5] << 24) + (bytes[6] << 16) + (bytes[7] << 8) + bytes[8];
let result = {"width":width,"height":height};
return result;
}
return {"width":0,"height":0};
}
大佬牛逼,现在就是需要获取 64 代码,但是可恶的明道云不给我实现,大佬请看截图
全耘伸 2023-05-10 14:56:32感谢大佬,看样子明道云不支持这个附件,只能用第三方的 API
我测试了以下可以的,用万能的 chatgpt,你就获取一下附件的 base64,判断一下格式,窜下流程就可以了
输入参数:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAABCAYAAAD0In+KAAAAE0lEQVQIHWNgYAAAAAMAASDsOGAoAAAAASUVORK5CYII=
代码块内容
var str = input.base64data;
var result = JSON.stringify(get_size(str));
output = {output:result };
function get_size(base64) {
//确认处理的是 png 格式的数据
if (base64.substring(0,22) === 'data:image/png;base64,') {
// base64 是用四个字符来表示 3 个字节
// 我们只需要截取 base64 前 32 个字符(不计开头那 22 个字符)便可(24 / 3 * 4)
// 这里的 data 包含 12 个字符,9 个字节,除去第 1 个字节,后面 8 个字节就是我们想要的宽度和高度
const data = base64.substring(22 + 20, 22 + 32);
const base64Characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
const nums = [];
for (const c of data) {
nums.push(base64Characters.indexOf(c));
}
const bytes = [];
for(let i = 0; i < nums.length; i += 4) {
bytes.push((nums[i] << 2) + (nums[i+1] >> 4));
bytes.push(((nums[i+1] & 15) << 4) + (nums[i+2] >> 2));
bytes.push(((nums[i+2] & 3) << 6) + nums[i+3]);
}
const width = (bytes[1] << 24) + (bytes[2] << 16) + (bytes[3] << 8) + bytes[4];
const height = (bytes[5] << 24) + (bytes[6] << 16) + (bytes[7] << 8) + bytes[8];
let result = {"width":width,"height":height};
return result;
}
return {"width":0,"height":0};
}
frank.lin 2023-05-10 14:42:38你说的对的,你如果需要这么干还得先到 base64,在代码块里理论上可行的
感谢大佬,看样子明道云不支持这个附件,只能用第三方的 API
全耘伸 2023-05-10 14:28:43我觉得我是不是弄混了,好像明道云支持编码提交,并不支持编码获取
你说的对的,你如果需要这么干还得先到 base64,在代码块里理论上可行的
我觉得我是不是弄混了,好像明道云支持编码提交,并不支持编码获取
方棱 2023-05-10 08:36:45试了 js 代码块,发现里面不支持 new Image(),好像不行。
大佬大佬,帮我看看这个,我的设想是这样的,我看到明道云附件有 API 数据,其中包括图片的 base64 编码,所以我就百度了一下如何从 base64 编码获取图片宽和高,答案找到了(见下方链接)。但是链接的代码我不会用,求大佬指点一二!
Alvin.Zhang 2023-05-10 03:33:17代码块判断,然后推送通知
大佬大佬,帮我看看这个,我的设想是这样的,我看到明道云附件有 API 数据,其中包括图片的 base64 编码,所以我就百度了一下如何从 base64 编码获取图片宽和高,答案找到了(见下方链接)。但是链接的代码我不会用,求大佬指点一二!
琮禾 2023-05-10 11:44:46明道云的 nodejs 里面好像不支持
Image
()方法,看报错是找不到这方法
大佬大佬,帮我看看这个,我的设想是这样的,我看到明道云附件有 API 数据,其中包括图片的 base64 编码,所以我就百度了一下如何从 base64 编码获取图片宽和高,答案找到了(见下方链接)。但是链接的代码我不会用,求大佬指点一二!
frank.lin 2023-05-10 12:40:33这个比较现实的方案是用户上传后触发工作流调第三方 API 来判断精度,然后推送通知,比如短信
大佬大佬,帮我看看这个,我的设想是这样的,我看到明道云附件有 API 数据,其中包括图片的 base64 编码,所以我就百度了一下如何从 base64 编码获取图片宽和高,答案找到了(见下方链接)。但是链接的代码我不会用,求大佬指点一二!
frank.lin 2023-05-10 12:40:33这个比较现实的方案是用户上传后触发工作流调第三方 API 来判断精度,然后推送通知,比如短信
明白,如果只能这样,那应该是唯一解了
这个比较现实的方案是用户上传后触发工作流调第三方 API 来判断精度,然后推送通知,比如短信
琮禾 2023-05-10 11:44:46明道云的 nodejs 里面好像不支持
Image
()方法,看报错是找不到这方法
这思路不对的,代码里获取不到 dom 对象的,包括图像、音频等等都不行
全耘伸 2023-05-10 09:45:21大佬,我网上搜了一段代码,你帮我试试,我没有任何代码基础
function setImg() {
var docObj = document.getElementById("imgPath");
var files = document.getElementById("imgPath").value;
if (null == files || '' == files) {
.messager.alert('温馨提示','请上传图片封面信息。','info'); return; } if(!uploadType(finals(files,"suffix"))){ .messager.alert('温馨提示','请上传 bmp,png,gif,jpeg,jpg 格式的图片','info');
return false;
};if(!uploadfinaName(finals(files,"fileName"))){ $.messager.alert('温馨提示','上传失败,文件名称只能由“数字”、“字母”、或“_”组成','info'); return false; }; if (docObj.files && docObj.files[0]) { var img = new Image; img.onload = function(){ alert(img.height); var width = img.width; var height=img.height; var filesize = img if(width!=480 || height!=1008){ alert("图片尺寸不符合,请重新上传...."); }else{ //后续操作 提交代码 } }; img.οnerrοr=function(){ alert("error!"); }; img.src=window.URL.createObjectURL(docObj.files[0]); } }
明道云的 nodejs 里面好像不支持 Image
()方法,看报错是找不到这方法
方棱 2023-05-10 09:35:36就写一行: var img = new Image();
点击测试后直接报错:ReferenceError: Image is not defined ...
大佬,我网上搜了一段代码,你帮我试试,我没有任何代码基础
function setImg() {
var docObj = document.getElementById("imgPath");
var files = document.getElementById("imgPath").value;
if (null == files || '' == files) {
.messager.alert('温馨提示','请上传图片封面信息。','info');
return;
}
if(!uploadType(finals(files,"suffix"))){
.messager.alert('温馨提示','请上传 bmp,png,gif,jpeg,jpg 格式的图片','info');
return false;
};
if(!uploadfinaName(finals(files,"fileName"))){
$.messager.alert('温馨提示','上传失败,文件名称只能由“数字”、“字母”、或“_”组成','info');
return false;
};
if (docObj.files && docObj.files[0]) {
var img = new Image;
img.onload = function(){
alert(img.height);
var width = img.width;
var height=img.height;
var filesize = img
if(width!=480 || height!=1008){
alert("图片尺寸不符合,请重新上传....");
}else{
//后续操作 提交代码
}
};
img.οnerrοr=function(){
alert("error!");
};
img.src=window.URL.createObjectURL(docObj.files[0]);
}
}
全耘伸 2023-05-10 09:30:48代码有吗
就写一行: var img = new Image();
点击测试后直接报错:ReferenceError: Image is not defined ...
方棱 2023-05-10 08:36:45试了 js 代码块,发现里面不支持 new Image(),好像不行。
代码有吗
Alvin.Zhang 2023-05-10 03:33:17代码块判断,然后推送通知
试了 js 代码块,发现里面不支持 new Image(),好像不行。
代码块判断,然后推送通知