アップロードされたファイルを適切なディレクトリに移動しようとすると、次のような問題が発生します: PHP move_uploaded_file() エラー? ただし、コードとアクセス許可に関しては、すべて問題ないようです。私は Objective-C の部分にこのチュートリアルを使用しています: http://www.michaelroling.com/post/upload-an-image-using-objective-cと、アプリと PHP スクリプトの完全な実装が以下に書かれています。ただし、問題は、Objective-C が実際に画像を送信していないことです。さらに情報が必要な場合はお知らせください。PHP は以下を返します。
ファイルのアップロードは成功したと報告されますが、実際には jpeg はアップロードされません。
- (IBAction)shareWithFriends:(id)sender
{
if (imageView.image != nil)
{
NSData *image = UIImageJPEGRepresentation(imageView.image, 0.1);
self.fileUploadClient = [[fileUploadClient alloc] initWithHostName:@"shipstudent.com" customHeaderFields:nil];
NSMutableDictionary *postParameters = [NSMutableDictionary dictionaryWithObject:@"Animal" forKey:@"appID"];
self.fileOperation = [self.fileUploadClient postData:postParameters path:@"/animal/pictureuploads.php"];
[self.fileOperation addData:image forKey:@"userfl" mimeType:@"image/jpeg" fileName:@"upload.jpg"];
[self.fileOperation addCompletionHandler:^(MKNetworkOperation *operation)
{
NSLog(@"%@",[operation responseString]);
}
errorHandler:^(MKNetworkOperation *errorOperation, NSError *error)
{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles: nil];
[alert show];
}];
[self.fileUploadClient enqueueOperation:self.fileOperation];
}
else
{
}
}
PHP:
<?php
if(!empty($_POST))
{
$directory = $_SERVER['DOCUMENT_ROOT'] . '/appphotos';
$file = basename($_FILES['userfl']['upload.jpg']);
$uploadfile = $directory . $file;
$randomPhotoID = md5(rand() * time());
echo "file=".$file;
//where the error resides
if (move_uploaded_file($_FILES['userfl']['tmp_name'], $uploadfile)) {
echo 'successful';
}
else
{
echo 'unsuccessful';
}
}
else
{
echo('Empty post data');
}
?>