我的应用程序使用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];