Загрузить файл изображения на сервер с помощью ASIHTTPRequest из приложения IPhone - PullRequest
0 голосов
/ 28 декабря 2011

Я хочу загрузить изображения на сервер с помощью библиотеки ASIHTTPRequest в моем приложении для iPhone.

Для загрузки изображений я использую 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];

Я попробовал вышеуказанные коды в моем приложении, запрос успешно выполнен, и я получил сообщение с предупреждением в методе делегата requestFinished ASIHTTPRequest. но изображение не загружено на сервер.

- (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";
  }
?>

Пожалуйста, помогите в этом отношении.

Спасибо !!!

1 Ответ

1 голос
/ 07 февраля 2012

Я думаю, что первое, что я хотел бы сделать, это добавить

NSLog(@"%@", [request responseString]);

to requestFinished: просто чтобы убедиться, что вы видите "Failed", который регистрируется. Это докажет, что проблема заключается в попытке вызвать move_upload_file, который, как я догадываюсь, заключается в том, где что-то идет не так.

Если это так, то я вполне уверен, что пользователь, на котором работает ваш веб-сервер, не имеет прав на запись в каталог upload_files.

...