起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20431|回复: 10

[处理中3] 文件下载问题

[复制链接]

56

主题

163

帖子

805

积分

高级会员

Rank: 4

积分
805
QQ
发表于 2021-3-22 12:04:12 | 显示全部楼层 |阅读模式
Snipaste_2021-03-22_12-03-45.png 图示为一个下载列表,其中
【下载文件】按钮为批量下载,通过后端调用DocHelper.downloadDoc(row.getString("doc_id"), out);的方式下载每一个文件,然后压缩;
【下载】按钮为单个文件下载,通过前端方法调用  DocUtils.InnerUtils.downloadDocByFileID({docPath : docPath,fileID : fileID,context : that.getContext()});
问题在于,我在系统表中查过sa_docnode表,发现文件的doc_id行记录不存在,所以导致批量下载不成功,但是前端的单条下载是没问题的,我又查了下文档服务的document_variants表,发现是存在相同文件名称的记录。我想问一下:1.前后端这两种方式的实现机制是不是不同?能不能详细解释一下?2.sa_docnode表中的记录存不存在因为同名文件上传导致删除的情况?3.我这边想补数据是不是只需要增加sa_docnode表里面的数据,有关联其他表数据么?

56

主题

163

帖子

805

积分

高级会员

Rank: 4

积分
805
QQ
 楼主| 发表于 2021-3-22 12:37:36 | 显示全部楼层
刚刚我在想,是不是会存在文件上传成功但sa_docnode里面数据没保存成功的情况?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2021-3-22 13:54:32 | 显示全部楼层
1.row.getString("doc_id")具体取的什么值?2.平台不会去控制和处理同名的文件
3.要补充数据就重新上传
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

56

主题

163

帖子

805

积分

高级会员

Rank: 4

积分
805
QQ
 楼主| 发表于 2021-3-22 14:03:24 | 显示全部楼层
1.row.getString("doc_id")其实是解析attachment保存后的那个json中的docID,这里面docID不就是相当于是sa_docnode里面的id么?现在问题是一个后端取文件的结果和一个前端取文件的结果不一致,按理来说sa_docnode表里面有对应记录才能下载到对应的文件;
2.用户上传文件的时候,有一个删除的接口我调用的平台的action deleteDocByIDAction。我想问一下这个逻辑删除和物理删除指的是什么意思,逻辑删除只删除sa_docnode中记录,文档服务器上不删除;物理删除两者都删除;我这个理解对么?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2021-3-22 17:15:30 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

56

主题

163

帖子

805

积分

高级会员

Rank: 4

积分
805
QQ
 楼主| 发表于 2021-3-22 20:03:56 | 显示全部楼层
不不,我不是纠结下载的问题,我现在纠结的是我在sa_docnode表里面没有这条记录,我后端用DocHelper里面的方法和前端用DocUtils.InnerUtils.downloadDocByFileID的方法执行情况不一样。我是想找出这个问题所在,我怕后面继续出现类似的问题。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2021-3-23 09:20:11 | 显示全部楼层
确认前端和后端操作的docID是同一个吗?
下载用我发的API

远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

56

主题

163

帖子

805

积分

高级会员

Rank: 4

积分
805
QQ
 楼主| 发表于 2021-3-23 10:43:55 | 显示全部楼层

我前端打印看过的,确认是一样的。而且这个DocHelper与你发的API实现上是一样的啊,这个不冲突的。现在的问题就是sa_docnode里面数据丢了,但是文档服务器中的数据是存在的,导致了后端下载和前端下载两种方式不一致的情况出现。
我现在希望:
1.这两种下载出现的情况能够一致;
2.或者有没有这样的方式,后端绕过sa_docnode这张表(我们业务表中存了文件的docID,flieID)直接下载文档服务器里面的数据。
11111.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2021-3-23 15:46:38 | 显示全部楼层
确认这些文件都是怎么上传的,是不是自己代码上传的

http://bbs.wex5.com/forum.php?mo ... 1&pid=165665430
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

56

主题

163

帖子

805

积分

高级会员

Rank: 4

积分
805
QQ
 楼主| 发表于 2021-3-23 16:00:42 | 显示全部楼层
不是,就是调用attachmen组件上传的。我也是江苏院的,我们现在就是准备按照这个方式来做了。这个sa_docnode表记录不知道为什么丢掉了,现在也没找出问题。我看了下Docs.deleteDoc方法,删除时存不存在这个commitToServer方法失败(即文档服务没删除成功)但是执行了后面的return中deleteDocTable方法(即sa_docnode记录删除)。
Snipaste_2021-03-23_15-57-14.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-24 11:51 , Processed in 0.062391 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表