找回密码
 立即注册

QQ登录

只需一步,快速开始

David.Zhong 讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-3-21 13:32  /   查看:8499  /  回复:0
本帖最后由 David.Zhong 于 2022-3-21 14:33 编辑

今天和大家详细讨论一下活字格的附件是怎么存储的。
直接上硬菜哈,我会举一些实际的例子去帮助大家理解。
一、附件/图片的存储路径

1.服务器上的附件存储路径
当我们上传图片或者附件的时候,活字格会把这个附件重命名,然后上传到服务器上应用的对应附件路径下。
比如我们上传了一个附件,名为"测试.xlsx",
重命名的规则为随机GUID+ "_" +附件名,类似"4402eef6-50dd-4e1b-98c6-789f81cd1f72_测试.xlsx",
对应的服务器上附件的路径为 "C:\Users\Public\Documents\ForguncyServer\"+"应用名" + "\Upload",
比如应用名为aa,对应的服务器上附件的路径为"C:\Users\Public\Documents\ForguncyServer\aa\Upload",
image.png321278380.png
如果我们上传的是一个附件,活字格会自动把重命名之后的附件上传到服务器上,如上图;
如果我们上传的是一张图片,活字格会自动把重命名之后的图片上传到服务器上,在这个基础上,还会自动生成两张额外的图片,分别名为_dedium,_small。
翻译一下大概可以理解为原图、中图和小图。
image.png606966857.png
这样做的目的是,活字格会自动根据图片显示的场景去分别加载不同的资源,以提升应用的性能。

如果C盘空间不足,或者基于其他情况,需要更改附件的存储位置,活字格给大家提供了设置终端用户上传文件的根目录的功能
如果在管理控制台中设置了终端用户上传文件的根目录,那么对应的服务器上附件的路径为"终端用户上传文件的根目录"+"应用名"。
比如终端用户上传文件的根目录设置为"D:\活字格附件",
image.png778935851.png
那么对应的服务器上附件的路径为"D:\活字格附件\aa"。
image.png176228636.png

当我们设置终端用户上传文件的根目录的时候,对于已有应用的附件,是不会进行自动迁移操作的哈,需要大家手动去迁移。
大家需要注意一下,默认情况下,附件的路径为,
"C:\Users\Public\Documents\ForguncyServer\aa\Upload";
配置了终端用户上传文件的根目录之后,附件的路径为,
"D:\活字格附件\aa";
少了一层Upload哈,如果我们需要做附件的迁移的话,需要注意一下这个地方的区别。
有类似需求可以参考:【7.0】终端用户上传文件问题-更改附件存储路径 - 活字格专区 - 求助中心 - 葡萄城产品技术社区 (grapecity.com.cn)

终端用户上传文件的根目录这个配置是针对服务器上所有应用的,
而在某些情况下,我们需要针对每个应用去做单独的附件路径设置,在活字格7.1版本中,我们支持了对每个应用单独配置附件存储路径的功能。
如果在管理控制台中针对应用设置了附件存储路径,那么对应的服务器上附件的路径直接就是"附件存储路径",
比如附件存储路径设置为"D:\AA应用附件",
image.png267590941.png
那么对应的服务器上附件的路径为"D:\AA应用附件"。
image.png425873717.png
注意此功能也不会自动迁移应用之前已存在的附件,手动迁移的话,大家看完帖子理解了原理之后,应该可以搞定哈,搞不定的话联系我,我反思一下是不是没有给大家讲清楚~默认情况下,活字格会把不同应用的附件放在各个应用下的不同的文件路径中,导致多应用之间附件不能共用。
多应用附件共用方案,大家基本上参考的都是梁总的方案,使用mklink来实现,参考,
多应用附件共用方案 - 活字格专区 - 格友杂谈 - 葡萄城产品技术社区 (grapecity.com.cn)
但是基于7.1的可以单独给应用设置附件存储路径这个功能,大家可以有一个更简单的多应用附件共用方案,
那就是直接把多个应用的附件存储路径修改为相同的路径。

对于这个功能还需要注意的是针对单个应用的附件存储路径设置优先级大于针对服务器所有应用的终端用户上传文件的根目录设置。
这个应该好理解哈,大家了解就行。

2.设计时的附件存储路径
在设计器中,保存应用之后,如果有附件的话,附件是存储在应用同级目录下以应用名+_fgcfiles命名的文件夹中。
image.png67645262.png
所以如果是想给大家分享带附件应用demo的话,记得需要一起打包哈~不然别人就看不到附件啦~

附件的存储路径讨论到这基本就差不多了~

二、附件/图片字段记录的值

附件和图片字段记录的值实际上就是重命名之后的文件名。
区别在于,图片字段只允许上传一张图片,附件字段可以上传多个附件,
所以附件字段中多个附件的值是用"|"隔开的,
image.png453578490.png

当我们需要显示图片或者下载附件的时候,活字格会自动的去服务器对应的附件路径下,下载对应的资源到浏览器上。
如果是图片加载不出来或者附件下载报错时,大家可以在浏览器中按F12,如果报错信息是404的话,大概率只是单纯的服务器上没有对应的图片或者附件~
image.png193177794.png
说过了附件存储路径和附件字段存储的值,希望对大家对附件有一个更清晰的概念,方便以后在开发应用的时候实现特殊的功能以及更好的排查问题~
希望对大家有帮助哟~




评分

参与人数 7满意度 +35 收起 理由
阿Q7 + 5
xie + 5
13794930121 + 5
棠诗鲮 + 5
sz_xd + 5
leilei6120 + 5
Alink + 5

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部