转换 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
的照片,您可以这样做:
- 实施默认处理程序以捕获所有
GET
请求
- 为
/index.html
的 GET
请求实施处理程序(您必须将其添加到 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
).
根据我的要求,想要为我的 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
的照片,您可以这样做:
- 实施默认处理程序以捕获所有
GET
请求 - 为
/index.html
的GET
请求实施处理程序(您必须将其添加到 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
).