我的应用程序使用GCDWebServer我通过使用AssetsLibrary从我的iPhone专辑中获取照片,并将它们存储在NSDocumentDirectory中.我只想访问此照片的网址,以便在网页中显示.
有我的代码:
[_webServer addHandlerForMethod:@"POST"
path:@"/"
requestClass:[GCDWebServerURLEncodedFormRequest class]
processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) {
ALAsset *asset = [self.arrayPictures objectAtIndex:0];
ALAssetRepresentation *rep = [asset defaultRepresentation];
CGImageRef iref = [rep fullResolutionImage];
UIImage *thumbnail = [UIImage imageWithCGImage:iref];
Nsstring* path ;
if (thumbnail != nil)
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
Nsstring *documentsDirectory = [paths objectAtIndex:0];
path = [[Nsstring alloc] initWithString:[documentsDirectory stringByAppendingPathComponent:@"test.png"]];
NSData* data = UIImagePNGRepresentation(thumbnail);
[data writetoFile:path atomically:YES];
}
NSURL *url = [NSURL fileURLWithPath:path];
Nsstring* html = [Nsstring stringWithFormat:@"<html><body><img src=\"%@\" width=\"400\" height=\"500\"/></body></html>",url];
return [GCDWebServerDataResponse responseWithHTML:html];
}];
解决方法
对于DocumentDirectory路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,YES); Nsstring *documentsDirectory = [paths objectAtIndex:0]; Nsstring *imagePath = [[Nsstring alloc] initWithString:[documentsDirectory stringByAppendingPathComponent:@"test.jpg"]]; NSURL *baseURL2 = [NSURL fileURLWithPath:documentsDirectory]; Nsstring* html2 = [Nsstring stringWithFormat:@"<html><body><img src=\"%@\" width=\"400\" height=\"500\"/></body></html>",imagePath]; [_webView loadHTMLString:html2 baseURL:baseURL2];
捆绑资源
Nsstring *path = [[NSBundle mainBundle] pathForResource:@"ahsan" ofType:@"jpg"]; // path to your image source. NSURL *baseURL = [NSURL fileURLWithPath:path]; Nsstring* html = [Nsstring stringWithFormat:@"<html><body><img src=\"%@\" width=\"400\" height=\"500\"/></body></html>",path];