如果用户取消 WEBDAV 存储库上的文件上传,文件会损坏

问题描述

在我的一个 iOS 应用程序中,我正在尝试将文件上传到 WEBDAV 存储库,这就是我为上传做准备的方式 -

func createUploadRequest(url: String) -> URLRequest? {
    if let url = URL(string: url) {
        var request = URLRequest(url:url)
        request.httpMethod = "PUT"
        request.setValue("1",forHTTPHeaderField: "Depth")
        request.setValue("application/xml",forHTTPHeaderField: "Content-Type")
        return request
    }
    return nil
}

@IBAction func upload() {
    if let request = createUploadRequest(url: url) {
        let sessionConfiguration: URLSessionConfiguration = URLSessionConfiguration.background(withIdentifier: "sessionIdentifier")
        self.session = URLSession(configuration: sessionConfiguration,delegate: self,delegateQueue: nil)
        uploadTask = self.session?.uploadTask(with: request as URLRequest,fromFile: self.fileUrl!)
        self.uploadTask?.resume()
    }

}

在上传过程中我取消 uploadtask 如下

@IBAction func cancelUpload() {
    self.uploadTask?.cancel()
}

上传过程被取消,但这里的问题是文件在 WEBDAV 服务器上损坏,正在上传,uploadtask 被取消.

奇怪的是,这在 iOS 9 中运行良好,上传过程被正确取消,文件未损坏,但 iOS 12 及更高版本的文件已损坏。 不过,我没有检查 iOS 10 或 11 上的行为。

请帮我解决这个问题。提前致谢。

请注意,在锁定/不锁定 WEBDAV 资源的情况下,此错误仍然存​​在

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)