| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | #import "PUTResponse.h"#import "HTTPLogging.h"// HTTP methods: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html// HTTP headers: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html// HTTP status codes: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.htmlstatic const int httpLogLevel = HTTP_LOG_LEVEL_WARN;@implementation PUTResponse- (id) initWithFilePath:(NSString*)path headers:(NSDictionary*)headers body:(id)body {  if ((self = [super init])) {    if ([headers objectForKey:@"Content-Range"]) {      HTTPLogError(@"Content-Range not supported for upload to \"%@\"", path);      _status = 400;    } else {      BOOL overwrite = [[NSFileManager defaultManager] fileExistsAtPath:path];      BOOL success;      if ([body isKindOfClass:[NSString class]]) {        [[NSFileManager defaultManager] removeItemAtPath:path error:NULL];        success = [[NSFileManager defaultManager] moveItemAtPath:body toPath:path error:NULL];      } else {        success = [body writeToFile:path atomically:YES];      }      if (success) {        _status = overwrite ? 200 : 201;      } else {        HTTPLogError(@"Failed writing upload to \"%@\"", path);        _status = 403;      }    }  }  return self;}- (id) initWithFilePath:(NSString*)path headers:(NSDictionary*)headers bodyData:(NSData*)body {  return [self initWithFilePath:path headers:headers body:body];}- (id) initWithFilePath:(NSString*)path headers:(NSDictionary*)headers bodyFile:(NSString*)body {  return [self initWithFilePath:path headers:headers body:body];}- (UInt64) contentLength {  return 0;}- (UInt64) offset {  return 0;}- (void) setOffset:(UInt64)offset {  ;}- (NSData*) readDataOfLength:(NSUInteger)length {  return nil;}- (BOOL) isDone {  return YES;}- (NSInteger) status {  return _status;}@end
 |