我想在我的iPhone应用程序中使用ASIHTTPRequest库在服务器上传图像。
对于图片上传,我使用ASIFormDataRequest上传到服务器。
我在我的应用程序中尝试了以下代码,但它无法正常工作且图像未上传到服务器中。
NSURL *url = [NSURL URLWithString:@"http://www.anglerdemo.com/Appln/Aghaven_iphone/Uploadphoto.php"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
request.requestMethod = @"POST";
NSString *fileName = @"iphone.jpg";
[request addPostValue:fileName forKey:@"name"];
// Upload an image
UIImage *img = [UIImage imageNamed:fileName];
NSData *imageData = UIImageJPEGRepresentation(img, 90);
NSLog(@"imageData ==> %@", imageData);
[request setData:imageData withFileName:fileName andContentType:@"image/jpeg" forKey:@"image"];
[request setDelegate:self];
[request startAsynchronous];
我在我的应用程序中尝试过以上代码,请求成功执行,并且我在ASIHTTPRequest的“requestFinished”委托方法中收到了警告消息。但是图片没有上传到服务器中。
- (void)requestFinished:(ASIHTTPRequest *)request
{
[[[[UIAlertView alloc]
initWithTitle:@"Message"
message:@"Success!!!"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil]
autorelease]
show];
NSLog(@"success ==> ");
}
我已经尝试过上传的php文件脚本。
<?php
$uploaddir = 'upload_files/';
$file = basename($_FILES['image']['name']);
$uploadfile = $uploaddir . $file;
if(move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile))
{
echo "Photo has been saved successfully!…;
}
else {
echo "Failed";
}
?>
请在这方面提供帮助。
感谢!!!
答案 0 :(得分:1)
我认为我要做的第一件事就是添加
NSLog(@"%@", [request responseString]);
到requestFinished:只是为了确保你看到“失败”被记录。这将证明问题是尝试调用move_upload_file,我猜这是出错的地方。
如果是这种情况,我很确定你的网络服务器运行的用户没有对upload_files目录的写权限。