如何在 iPhone 中快速从文件路径 url 获取视频或图像?
Posted
技术标签:
【中文标题】如何在 iPhone 中快速从文件路径 url 获取视频或图像?【英文标题】:How to get video or image from file path url in swift in iPhone? 【发布时间】: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("无法加载数据:(错误)") 【参考方案1】:我认为您不能从不属于您的应用程序的任何文件夹或路径访问文件。 该文件只能放在应用程序文件夹中。 Document、Temp 或其他文件夹。
这是因为所有应用程序都是沙盒化,因此无法直接访问其他应用程序的数据。
如果您尝试从“照片”或任何其他应用程序访问数据,则需要在读取之前将其保存到应用程序的沙盒目录中。
参考:ios Application Sandboxing
【讨论】:
应用程序的沙盒目录你说的是 NSDocumentDirectory 还是 NSApplicationSupportDirectory ? 您可以使用 DocumentDirectory。因为 ApplicationSupportDirectory 在应用程序的沙箱中默认不存在。以上是关于如何在 iPhone 中快速从文件路径 url 获取视频或图像?的主要内容,如果未能解决你的问题,请参考以下文章