(Swift) 如何获取 documentPicker URL 的数据表示

Joc*_*her 2 multipart ios swift alamofire uidocumentpickerviewcontroller

我使用 didPickDocumentAt 函数来检索 DocumentPickerViewController 中所选文件的 url。我有一个分段上传功能,它使用 alamofire 将文件上传到后端。

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
    print(url)
    uploadMultipartFile()
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何获取我选择的文件的数据表示,以便将其传递给我的 uploadMultipartFile 函数?

文件可以是 pdf、.docx 或任何类型的文件。方法是什么?

pbo*_*dsk 6

看一下 dataWithContentsOfURL:

返回包含来自给定 URL 指定位置的数据的数据对象。

请注意,throws如果它无法从 URL 创建数据表示。

所以在你的情况下可能是这样的:

func documentPicker(_ controller: UIDocumentPickerViewController, 
      didPickDocumentsAt urls: [URL]) {
print(url)
    do {
        var documentData = [Data]()
        for url in urls {
            documentData.append(try Data(contentsOf: url))
        }

        //hopefully you have an array of data elements now :)                
        uploadMultipartFile()
    } catch {
        print("no data")
    }
}
Run Code Online (Sandbox Code Playgroud)

希望有帮助。