浏览代码

fix Fatal Exception: NSInvalidArgumentException

marinofaggiana 4 年之前
父节点
当前提交
3f68b0763a
共有 1 个文件被更改,包括 20 次插入11 次删除
  1. 20 11
      iOSClient/Networking/NCNetworking.swift

+ 20 - 11
iOSClient/Networking/NCNetworking.swift

@@ -422,18 +422,27 @@ import Queuer
             session = sessionManagerBackgroundWWan
         }
         
-        if let task = NCCommunicationBackground.shared.upload(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath, dateCreationFile: metadata.creationDate as Date, dateModificationFile: metadata.date as Date, description: metadata.ocId, session: session!) {
-                     
-            NCManageDatabase.shared.setMetadataSession(ocId: metadata.ocId, sessionError: "", sessionTaskIdentifier: task.taskIdentifier, status: NCBrandGlobal.shared.metadataStatusUploading)
-            
-            NotificationCenter.default.postOnMainThread(name: NCBrandGlobal.shared.notificationCenterUploadStartFile, userInfo: ["ocId":metadata.ocId])
-            
-            completion(0, "")
-            
-        } else {
-            
+        // Check file dim > 0
+        if NCUtilityFileSystem.shared.getFileSize(filePath: fileNameLocalPath) == 0 {
+        
             NCManageDatabase.shared.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", metadata.ocId))
-            completion(NCBrandGlobal.shared.ErrorInternalError, "task null")
+            completion(404, NSLocalizedString("_error_not_found_", value: "The requested resource could not be found", comment: ""))
+        
+        } else {
+        
+            if let task = NCCommunicationBackground.shared.upload(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath, dateCreationFile: metadata.creationDate as Date, dateModificationFile: metadata.date as Date, description: metadata.ocId, session: session!) {
+                         
+                NCManageDatabase.shared.setMetadataSession(ocId: metadata.ocId, sessionError: "", sessionTaskIdentifier: task.taskIdentifier, status: NCBrandGlobal.shared.metadataStatusUploading)
+                
+                NotificationCenter.default.postOnMainThread(name: NCBrandGlobal.shared.notificationCenterUploadStartFile, userInfo: ["ocId":metadata.ocId])
+                
+                completion(0, "")
+                
+            } else {
+                
+                NCManageDatabase.shared.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", metadata.ocId))
+                completion(NCBrandGlobal.shared.ErrorInternalError, "task null")
+            }
         }
     }