当前位置: 首页 > news >正文

活字格V9获取图片失败bug,报错404,了解存储路径,已改为批量上传和批量获取

项目场景:

问题描述

原因分析:

解决方案:

完成了批量上传功能,这插件真的很方便

于是写了个批量获取附件的js代码,我真厉害 


项目场景:

活字格V9版本获取图片链接Upload

【9.0.103.0】图片上传的存储路径和获取问题 - 活字格专区 - 求助中心 - 葡萄城开发者社区 (grapecity.com.cn)


问题描述

他们给的文档解释:
看完必恍然大悟的活字格内幕:五十五、活字格附件存储原理详解 - 活字格专区 - 专题教程 - 葡萄城开发者社区
(出处: 葡萄城开发者社区)


原因分析:

这个文档和我的情况不太一样,
他说的活字格设计时的附件存储路径是同级目录下以应用名+_fgcfiles命名的文件夹
而我的活字格设计时的附件存储路径C:\ProgramData\Forguncy\Garimi\303\WebSite\Upload\Temp
我的存储路径连应用名都没有


解决方案:

用了个插件

完成了批量上传功能,这插件真的很方便

奶奶滴,这请求路径和文档给的根本不一样好吗,我真服了

路径:http://${window.location.host}/Forguncy/FileDownloadUpload/Download?file=

于是写了个批量获取附件的js代码,我真厉害 

//imgs=ffc31308-ec72-4268-a977-16f4c366a75f_whitepig.png|3e8582d5-7e4b-4544-8e51-446ba8f70905_blackpig.png
//img[1]=ffc31308-ec72-4268-a977-16f4c366a75f_whitepig.png
//img[2]=3e8582d5-7e4b-4544-8e51-446ba8f70905_blackpig.png
//....
const imgs = Forguncy.Page.getCell("img").getValue();
const imgArray = imgs.split("|");
//遍历imgArray
for (let i = 0; i < imgArray.length; i++) {(function(index) {var img = `http://${window.location.host}/Forguncy/FileDownloadUpload/Download?file=` + imgArray[index];var image = new Image();var base64;image.src = img;console.log("第" + index + "轮次的src:" + image.src);image.onload = function () {base64 = getBase64Image(image);console.log(index + base64);Forguncy.modifyTablesData({image: {addRows: [{name: getImgName(imgArray[index]),code: imgArray[index],base64: base64,is_identify: false}],}});}})(i);
}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;
}function getImgName(input) {var match = input.match(/_([^_]*)(?:\.|$)/);var result = match && match[1];return result || null;
}

http://www.lryc.cn/news/290237.html

相关文章:

  • 【Echart】echart图表不显示总结
  • vue 组件之间相互传值的6种方法
  • 开源大规模分布式MQTT消息服务器EMQX部署教程
  • postgresql慢查询排查和复现
  • 【服务器】搭建ChatGPT站点常见问题
  • QT+opengl 创建一个六边形
  • Android imageView.setImageXXX() 引发的卡顿问题
  • MavenGradle等引入jSerialComm
  • 热门技术问答 | 请 GaussDB 用户查收
  • 【C/C++ 01】初级排序算法
  • Android Settings 显示电池点亮百分比
  • Windows记事本不显示下划线的原因及解决方法
  • 嵌入式软件工程师面试题——2025校招社招通用(C/C++)(四十六)
  • 【学网攻】 第(13)节 -- 动态路由(OSPF)
  • Asp.Net Core 获取应用程序相关目录
  • 文献速递:人工智能医学影像分割--- 深度学习分割骨盆骨骼:大规模CT数据集和基线模型
  • PaddleNLP的简单使用
  • 2. MySQL 多实例
  • 两个五层决策树和一个十层决策树的区别
  • 案例分析技巧-软件工程
  • 如何使用docker compose安装APITable并远程访问登录界面
  • 深入了解Matplotlib中的子图创建方法
  • 云计算运维 · 第三阶段 · git
  • 【幻兽帕鲁】开服务器,高性能高带宽(100mbps),免费!!!【学生党强推】
  • 微信小程序|推箱子小游戏
  • 【Linux】—— 信号的产生
  • 【算法】Hash 算法-关注优化细节
  • 回归预测 | Matlab实现CPO-SVR冠豪猪优化支持向量机的数据多输入单输出回归预测
  • Idea设置代理后无法clone git项目
  • tkMapper 通用mapper的批量更新 批量新增 官方实现 springboot项目 依赖引入