同時增刪改多個附件解決方案
阿新 • • 發佈:2018-03-03
align data 最終 inf file div 異常 臨時 技術
同時增刪改多個附件解決方案
需求描述如下圖:
由於同時涉及增刪改、多文件、保存、取消、異常退出、源文件刪除等多種情況,現將實現邏輯梳理如下圖:
最終確定方案要點如下(不刪除源文件):
- 進入修改頁後,前端獲取並保存初始附件數據,如下:
let sourceData = {
file1:‘test1.jpg‘,
file2:‘test2.png‘,
file3:‘test3.pdf‘,
file4:‘test4.pdf‘,
file5:‘‘,
} - 用戶點擊保存按鈕前,可做任何操作,前端按要求記錄每次操作結果:
刪除:例如刪除file1,sourceData
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:‘‘,
}
增加:例如增加
sourceData = {
file1:‘‘,
file2:‘test6.png‘,
file3:‘test3.pdf‘,
file4:‘test4.pdf‘,
file5:‘test7.pdf‘,
} - 用戶點擊保存,將最終sourceData值傳給後端即可。
- 後端將接收的sourceData值與數據庫對應值比對:
相同則不做操作。不同則做真正的增刪改操作,其中增和改需將文件從/tmp移動到目標文件夾。
此方案可以應對各種情況。
同時增刪改多個附件解決方案