我必须上传通过相机拍摄的图片或通过uiimagepickerview
上传的图片。我正在使用ASIHTTPRequest。
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photo"];
1。)由于我从iPhone相机拍摄照片或从uiimagepickerview
上传,我需要知道我应该为setFile
设置什么值({{1}的替换文字})?
2。)我还需要测试这个应用程序,所以有人知道相应的PHP代码,我可以在其中显示所拍摄的图像(在Web浏览器上)。教程或示例代码
答案 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)
您应该将图像作为图像数据添加到请求正文中。