iPhone,无法将图像从设备上传到服务器

时间:2011-12-22 11:59:30

标签: iphone upload alassetslibrary

将图像上传到服务器时出现问题。我可以使用iPhone模拟器中的以下代码成功发送到我们的服务器。当我在iPad 2等真实设备上使用此代码时,服务器上的图像似乎已损坏。数据是从AlAssetsLibrary的主要源URL中提取的。我不知道为什么512的值是用下面的代码中的数据长度添加的。邮件标题的布局是否重要,例如内容 - 性格必须在内容类型之前?

    NSDateFormatter *date_formatter=[[NSDateFormatter alloc]init];
[date_formatter setDateFormat:@"YYYY-MM-DD-hh-mm-ss"];
NSString *sDateTime = [date_formatter stringFromDate:[NSDate date]];

[date_formatter release];


    // from http://www.cocoadev.com/index.pl?HTTPFileUpload
    NSMutableURLRequest *urlRequest =
    [NSMutableURLRequest requestWithURL:url];
    [urlRequest setHTTPMethod:@"POST"];
    [urlRequest setValue:
        [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundry]
        forHTTPHeaderField:@"Content-Type"];


NSMutableData *postData =  
    [NSMutableData dataWithCapacity:[data length] + 512];
    [postData appendData:
        [[NSString stringWithFormat:@"--%@\r\n", boundry] dataUsingEncoding:NSUTF8StringEncoding]];
    [postData appendData:
     [[NSString stringWithFormat:
           @"Content-Disposition: form-data; name=\"%@\" filename=\"%@_%@.jpg\"\r\n", FORM_FLE_INPUT,sDateTime, filename]
                dataUsingEncoding:NSUTF8StringEncoding]];                         [postData appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

    [postData appendData:data];
    [postData appendData:
        [[NSString stringWithFormat:@"\r\n--%@--\r\n", boundry] dataUsingEncoding:NSUTF8StringEncoding]];

    [urlRequest setHTTPBody:postData];
    return urlRequest;

上面的代码中是否遗漏了导致问题的任何内容?

这是我从AlAsset defaultRepresentation生成的NSData。

int byteArraySize = asset.defaultRepresentation.size;

NSMutableData* data = [[NSMutableData alloc]initWithCapacity:byteArraySize];
void* bufferPointer = [data mutableBytes];
[data release];

NSError* error=nil;
[asset.defaultRepresentation getBytes:bufferPointer fromOffset:0 length:byteArraySize error:&error];
if (error) {
    NSLog(@"%@",error);
}
data = [NSMutableData dataWithBytes:bufferPointer length:byteArraySize];

现在我可以发送gif但不能发送其他格式

0 个答案:

没有答案