【问题标题】:How to get video or image from file path url in swift in iPhone?如何在 iPhone 中快速从文件路径 url 获取视频或图像?
【发布时间】:2018-08-29 12:04:18
【问题描述】:

我在从以下网址获取视频时遇到权限问题:

"file:///var/mobile/Media/DCIM/101APPLE/IMG_1111.mp4"

我收到以下错误,同时要从上面的 url 获取数据:

Error Domain=NSCocoaErrorDomain Code=257 "无法打开文件“IMG_1111.mp4”\342\200,因为您没有查看权限。" UserInfo={NSFilePath=/var/mobile/Media/DCIM/101APPLE/IMG_1111.mp4, NSUnderlyingError=0x1c0440f30 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not allowed"}}

我获取数据的代码是:

do {
     let fileData = try Data.init(contentsOf:urlCheck)
     print(fileData)
   } catch { 
     print(error)
   }

任何帮助将不胜感激。 谢谢

【问题讨论】:

  • 你确定你的 urlCheck 是使用 let urlCheck = NSURL(fileURLWithPath: filePath) ???
  • 你在游乐场吗?
  • @AnkitKushwah 我用 let fileData = try Data.init(contentsOf:NSURL(fileURLWithPath: urlCheck.absoluteString) as URL) 改变了这一点 --- 但还是一样
  • @puja 你能先试试模拟器吗??
  • do { let Data = try Data(contentsOf: urlCheck l as URL) } catch { print("无法加载数据:(错误)") }

标签: ios swift assets


【解决方案1】:

我认为您不能从不属于您的应用程序的任何文件夹或路径访问文件。 该文件只能放在应用程序文件夹中。 Document、Temp 或其他文件夹。

这是因为所有应用程序都是沙盒化,因此无法直接访问其他应用程序的数据。

如果您尝试从“照片”或任何其他应用程序访问数据,则需要在读取之前将其保存到应用程序的沙盒目录中。

参考:iOS Application Sandboxing

【讨论】:

  • 应用程序的沙盒目录你说的是 NSDocumentDirectory 还是 NSApplicationSupportDirectory ?
  • 您可以使用 DocumentDirectory。因为 ApplicationSupportDirectory 在应用程序的沙箱中默认不存在。
猜你喜欢
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
相关资源
最近更新 更多