【发布时间】:2014-04-15 19:19:43
【问题描述】:
我正在尝试从我的 iOS 应用程序将图像上传到我的服务器,但 php 脚本中的“不成功”一直在欺骗。我做错了什么?
Log 返回“File = Unsuccessful”,然后是二进制文件编号。
iOS(上传图片):
-(IBAction)uploadPhoto:(id)sender{
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://SERVERURL"]];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
NSData *imageData = UIImageJPEGRepresentation(pickedImage, 0.5);
NSDictionary *parameters = @{@"message": self.descriptionView.text};
AFHTTPRequestOperation *op = [manager POST:@"rest.of.url" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
//do not put image inside parameters dictionary as I did, but append it!
[formData appendPartWithFileData:imageData name:@"file" fileName:@"upload.jpg" mimeType:@"image/jpeg"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@ ***** %@", operation.responseString, error);
}];
[op start];
[self dismissViewControllerAnimated:YES completion:nil];
}
}
PHP 代码:
<?
if(!empty($_POST))
{
$message = $_POST['message'];
$directory = $_SERVER['DOCUMENT_ROOT'] . '/pictures';
$file = basename($_FILES['userfile']['upload.jpg']);
$uploadfile = $directory . $file;
var_dump($_FILES);
$randomPhotoID = md5(rand() * time());
echo 'file='.$file;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo 'successful';
}
else
{
echo 'unsuccessful';
}
}
else
{
echo('Empty post data');
}
?>
【问题讨论】:
标签: php ios objective-c afnetworking