ios - 从路径获取文件内容

标签 ios swift nsdata uidocument

我正在努力处理几行令人尴尬的代码。我已经阅读了很多答案,但似乎都没有用。在我的函数中,我从所选文档中获取文件路径:

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {

        let urlString = url.path
        let fileName = url.lastPathComponent
        let ref = DataService.instance.imagesStorageRef.child("\(fileName)")
         var contents = try? Data(contentsOf: url)
         print("contents: \(contents)")



        let uploadTask = ref.putData(contents! as Data, metadata: nil, completion: { (metadata, error) in ...}
}

file:///private/var/mobile/Library/Mobile%20Documents/com~apple~CloudDocs/nutella.jpg contents: nil

然后我尝试获取该文件路径的内容,以便我可以将其传递给上传函数,上传函数将其上传到 firebase。但是,无论我如何尝试获取该内容,我总是得到零值。请指导我正确的方向。

最佳答案

另一种可能对您有所帮助的方法。为此,您需要将该文档转换为数据形式,然后您可以将其发送到服务器

我在这里粘贴示例代码..

 func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
        let fileURL = url as URL
        print("The Url is : \(fileURL)")
        let fileNameWithoutExtension = fileURL.pathExtension
        print("fileNameWithoutExtension: \(fileNameWithoutExtension)")
        do {
            let data = try Data(contentsOf: fileURL)
            print("data=\(data)")
            //TODO: call upload API
            self.sendAttachments()
        }
        catch {/* error handling here */}
    }

关于ios - 从路径获取文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47518548/

相关文章:

ios - "Missing Marketing Icon. iOS Apps must include a 1024x1024px"如何解决

ios - 如何使用 xmpp openfire 发送打字通知

arrays - Swift 3 多维数组,适用于 Swift 2.2 及更早版本

ios - UITableViewController 仅在离开并返回 UITableViewController 后才在页面顶部留下空间

tcp - 通过 TCP 将 JPEG NSData 发送到 Python 服务器

ios - 呈现/呈现 View Controller 和父/ subview Controller 之间的交互是否在任何地方记录?

ios - 在 iOS 6 Xcode 4.5 中将 UISwitch 文本更改为是/否

ios - 从 Realm 结果转换为数组产生空对象

objective-c - UIImageJPEGRepresentation 上的 ARC 错误

ios - 如何按数据大小缩小 IOS 中的 UIImage