Доброе утро,
Я пытаюсь загрузить изображение, используя файл Objective-C и PHP, но я получаю «Примечание: неопределенный индекс: пользовательский файл» из моего PHP. Я много чего перепробовал и не знаю, где моя ошибка, поэтому мне нужна ваша помощь. Я собираюсь на свой пост мой код.
CamViewController.m
- (IBAction)uploadPhoto:(UIButton *)sender {
NSData *imageData = UIImageJPEGRepresentation(_imageView.image, 90);
NSString *urlString = @"http://www.mywebsite.com/upload.php";
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[request addValue:contentType forHTTPHeaderField:@"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"userfile\"; filename=\"imagen.jpg\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(returnString);
}
CamViewController.h
@interface CamViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
@property (strong, nonatomic) IBOutlet UIImageView *imageView;
- (IBAction)takePhoto: (UIButton *)sender;
- (IBAction)selectPhoto:(UIButton *)sender;
- (IBAction)uploadPhoto:(UIButton *)sender;
@end
Ошибка вывода:
2015-01-18 09:54:46.085 App[2213:1205076] Array
(
)
Notice: Undefined index: userfile in /var/www/vhosts/mywebsite.com/httpdocs/upload.php on line 31
Notice: Undefined index: userfile in /var/www/vhosts/mywebsite.com/httpdocs/upload.php on line 34
Temp file not uploaded.Notice: Undefined index: userfile in /var/www/vhosts/mywebsite.com/httpdocs/upload.php on line 43
Notice: Undefined index: userfile in /var/www/vhosts/mywebsite.com/httpdocs/upload.php on line 43
Notice: Undefined index: userfile in /var/www/vhosts/mywebsite.com/httpdocs/upload.php on line 45
Incorrect file type. is the file type you uploaded.
PHP-файл:
<?php
print_r($_REQUEST);
error_reporting(E_ALL);
ini_set("display_errors", 1);
$uploaddir = '/images/'; //Uploading to same directory as PHP file
$file = basename($_FILES['userfile']['name']);
$uploadfile = $uploaddir . $file;
if (is_uploaded_file($_FILES['userfile']['tmp_name']))
{
echo "Temp file uploaded. \r\n";
}
else
{
echo "Temp file not uploaded. \r\n";
}
if ((!($_FILES['userfile']['type'] == "image/jpeg")) && (!($_FILES['userfile']['type'] == "image/png")))
{
exit("Incorrect file type. " . $_FILES['userfile']['type'] . " is the file type you uploaded.");
}if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
$postsize = ini_get('post_max_size');
$canupload = ini_get('file_uploads');
$tempdir = ini_get('upload_tmp_dir');
$maxsize = ini_get('upload_max_filesize');
echo "http://www.mywebsite.com/images/{$file}" . "\r\n" . $_FILES['userfile']['size'] . "\r\n" . $_FILES['userfile']['type'] ;
}
?>
Вы можете мне помочь? Я не знаю, где ошибка.
Еще ошибка вывода:
Снимок представления, который не был обработан, приводит к пустому снимку. Убедитесь, что ваше представление было отображено хотя бы один раз перед моментальным снимком или моментальным снимком после обновления экрана.
Заранее спасибо.
Задача ещё не решена.
Других решений пока нет …