Я хочу загрузить данные, изображения, текстовые файлы, документы в формате PDF и т. Д.
Я использую MKNetworkKit для чистого соединения. С примерами этой структуры я пытаюсь сделать это.
Я добавляю в свой проект класс extends MKNetworkEngine с методом загрузки из файла:
#import "MKNetworkOperation.h"
#import "MKNetworkEngine.h"
@interface Uploader : MKNetworkEngine
-(MKNetworkOperation*) uploadFromFile:(NSString*) file
onError:(MKNKErrorBlock) errorBlock;
@end
#import "Uploader.h"
@implementation Uploader
-(MKNetworkOperation*) uploadFromFile:(NSString*) file
onError:(MKNKErrorBlock) errorBlock
{
MKNetworkOperation *op = [self operationWithPath:@"IP:PORT/PROYECT/"
params:nil
httpMethod:@"POST"];
[op addFile:file forKey:@"upload"];
[op setFreezable:YES];
[op onCompletion:^(MKNetworkOperation* completedOperation)
{
NSString *xmlString = [completedOperation responseString];
NSUInteger start = [xmlString rangeOfString:@"<mediaurl>"].location;
if(start == NSNotFound)
{
NSLog(@"%@", xmlString);
errorBlock(nil);
return;
}
xmlString = [xmlString substringFromIndex:start + @"<mediaurl>".length];
NSUInteger end = [xmlString rangeOfString:@"</mediaurl>"].location;
xmlString = [xmlString substringToIndex:end];
}
onError:^(NSError* error)
{
errorBlock(error);
}];
[self enqueueOperation:op];
return op;
}
@end
Я добавил в свой интерфейс кнопку для загрузки файла, и в моем контроллере я создал метод с таким содержанием:
-(IBAction)uploadImageTapped:(id)sender
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachesDirectory = [paths objectAtIndex:0];
NSString *uploadPath = [NSString stringWithFormat:@"%@/Imagen.jpg",cachesDirectory];
//NSLog(@"%@",uploadPath);
self.uploadOperation = [ApplicationDelegate.sampleUploader uploadFromFile:uploadPath onError:^(NSError* error)
{
[UIAlertView showWithError:error];
}];
}
Наконец, я добавил объект Uploader в мой делегат приложения:
@property (strong, nonatomic) Uploader *sampleUploader;
и
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
//Uploader
self.sampleUploader = [[Uploader alloc] initWithHostName:@"http://IP:PORT"
customHeaderFields:nil];
return YES;
}
Моя проблема в том, что я хочу загружать файлы, мой локальный хост недоступен, и я не знаю, почему ....
Есть идеи ???