同时增删改多个附件解决方案

Posted 土拉发子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同时增删改多个附件解决方案相关的知识,希望对你有一定的参考价值。

同时增删改多个附件解决方案

 

需求描述如下图:

 

 

 

 

 

由于同时涉及增删改、多文件、保存、取消、异常退出、源文件删除等多种情况,现将实现逻辑梳理如下图:

 

 

最终确定方案要点如下(不删除源文件):

  1. 进入修改页后,前端获取并保存初始附件数据,如下:
    let sourceData = {
        file1:\'test1.jpg\',
        file2:\'test2.png\',
        file3:\'test3.pdf\',
        file4:\'test4.pdf\',
        file5:\'\',
    }
  2. 用户点击保存按钮前,可做任何操作,前端按要求记录每次操作结果:
    删除:例如删除file1sourceData改为:
    sourceData = {
        file1:\'\',
        file2:\'test2.png\',
        file3:\'test3.pdf\',
        file4:\'test4.pdf\',
        file5:\'\',
    }
    修改:例如file2改为test6.png,先调用upload接口将test6.png传到服务器,服务器接收到文件后会将文件存入临时文件路径/tmp,前端接收返回的文件名后sourceData改为:
    sourceData = {
        file1:\'\',
        file2:\'test6.png\',
        file3:\'test3.pdf\',
        file4:\'test4.pdf\',
        file5:\'\',
    }
    增加:例如增加file5test7.pdf,先调用upload接口将test6.png传到服务器,服务器接收到文件后会将文件存入临时文件路径/tmp,前端接收返回的文件名后sourceData改为:
    sourceData = {
        file1:\'\',
        file2:\'test6.png\',
        file3:\'test3.pdf\',
        file4:\'test4.pdf\',
        file5:\'test7.pdf\',
    }
  3. 用户点击保存,将最终sourceData值传给后端即可。
  4. 后端将接收的sourceData值与数据库对应值比对:
    相同则不做操作。不同则做真正的增删改操作,其中增和改需将文件从/tmp移动到目标文件夹。

 

此方案可以应对各种情况。

以上是关于同时增删改多个附件解决方案的主要内容,如果未能解决你的问题,请参考以下文章

数据库初识 用户创建授权 库与表内容的增删改查

nodejs 连接mysql数据库进行增删改查操作,是进行一次操作就要 connnect 一次数据库 然后关闭吗?

java web 中连接数据库并在HTML上进行增删改查

求大神帮写个MYSQL增删改查 高分求救

jqgrid怎么实现增删改查

javaweb并发的问题,一个电商项目,同一时间很多人一起使用增删改查等