将图像上传到Web服务 - 初学者

时间:2012-03-04 13:08:23

标签: php iphone objective-c cocoa-touch asihttprequest

我必须上传通过相机拍摄的图片或通过uiimagepickerview上传的图片。我正在使用ASIHTTPRequest。

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

[request setFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photo"];

1。)由于我从iPhone相机拍摄照片或从uiimagepickerview上传,我需要知道我应该为setFile设置什么值({{1}的替换文字})?

2。)我还需要测试这个应用程序,所以有人知道相应的PHP代码,我可以在其中显示所拍摄的图像(在Web浏览器上)。教程或示例代码

2 个答案:

答案 0 :(得分:2)

要获得第一个问题的答案,请查看以下代码片段:

#import <MobileCoreServices/MobileCoreServices.h>

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    BOOL isImage = ([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:kUTTypeImage]);
    if (isImage) {
        self.request = [ASIFormDataRequest requestWithURL:url];
        UIImage *originalImage = [info objectForKey:UIImagePickerControllerOriginalImage];
        NSData *imageData = UIImageJPEGRepresentation(originalImage, 0.7);
        [self.request setData:imageData
                 withFileName:@"photo.jpg"
               andContentType:@"image/jpeg"
                       forKey:@"photo"];
        [self.request start];
    }
}

请考虑将属性添加到UIImagePiclerController委托类

@property(nonatomic, retain) ASIFormDataRequest *request;

通过简单地实现

,它将允许您停止请求或至少将其委托设置为nil(如果您的对象已取消分配)
- (void) dealloc {
    [self.request cancel];
    self.request.delegate = nil;
    [request release];
    [super dealloc];
}

答案 1 :(得分:0)

您应该将图像作为图像数据添加到请求正文中。

Take a Look of ASIHttp Framework

And Even you don't get Please Go through this Link