转换 Ios 相册路径 url 与文档目录文件路径相同

Convert Ios Photo Album path url same like as Document directory File-path

根据我的要求,想要为我的 GCDWebUploader 访问 iOS 设备照片应用程序文件 url(不是作为数据的文件)。我想要我的 Web 服务器的资产库 url。

NSString* documentsPath =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];

_webServer = [[GCDWebUploader alloc] initWithUploadDirectory: documentsPath];
// this is working and document directory files shown on browser.

_webServer = [[GCDWebUploader alloc] initWithUploadDirectory:assetsUrl];  // this is not working.Nothing shown on browser.   //assetsUrl= assets library url for file from photos app

_webServer.delegate = self;
_webServer.allowHiddenItems = YES;
[_webServer start];

如果文档 directory.this 功能已经使用 GCDWebUploader 完成,我的网络服务器会在 pc 浏览器上显示所有照片应用程序图像和视频。但我找不到资产 url 表现得像文件路径。

我不想将照片应用程序文件复制到文档目录和 use.but 直接从资产库访问。

我希望资产 url 像文档目录文件路径一样工作。请帮助我。

资产 URL 如下所示:

assets-library://asset/asset.JPG?id=CD12228F-0E99-4ABD-999D-6A76F54024E7&ext=JPG

这是 URL 到 ALAssetsLibrary 的内部含义,在此上下文之外没有任何意义。您不能期望将此 URL 传递给 GCDWebServer 并期望服务器神奇地用它做一些事情。

此外,根据定义,GCDWebServer 只能使用 HTTP 方案服务 URLs,主机名与您的 iPhone/iPad 网络名称匹配,并且您已为其实现处理程序的路径.

例如,如果您已经为路径 /photos/index.html 实现了 GET 处理程序,那么使用网络浏览器 http://my-device.local/photos/index.html 连接到您的 iPhone/iPad 将调用相应的GCDWebServer 上的处理程序,然后可以 return 一些内容(例如 HTML 网页或图像文件)。

然而,从您的网络浏览器连接到 assets-library://asset/asset.JPG 没有任何意义,而且会失败。

如果您在该路径的 GCDWebServer 中没有 GET 处理程序,则连接到 http://my-device.local/asset.JPG?id=CD12228F-0E99-4ABD-999D-6A76F54024E7&ext=JPG 也会失败。

简而言之,要使用 GCDWebServer 提供来自 ALAssetsLibrary 的照片,您可以这样做:

  1. 实施默认处理程序以捕获所有 GET 请求
  2. /index.htmlGET 请求实施处理程序(您必须将其添加到 GCDWebServer 实例 默认处理程序之后)

/index.html 处理程序的实现中,您 return 一个 HTML 网页列出了来自 ALAssetsLibrary 的照片资产的 URL ,他们每个人都有一个相对 URL link 像 <a href="/asset.JPG?id=CD12228F-0E99-4ABD-999D-6A76F54024E7&ext=JPG">My photo link</a> (资产的路径部分 URL)。

在默认处理程序的实现中,您检索 GCDWebServerRequest 的路径,在前面添加 assets-library://asset,然后返回原始资产 URL:assets-library://asset/asset.JPG?id=CD12228F-0E99-4ABD-999D-6A76F54024E7&ext=JPG.使用此 URL,您最终可以检索资产数据,即 JPEG 图像,并使用 GCDWebServerDataResponse return 它(不要忘记将 MIME 类型设置为 image/jpeg).