ios — загрузить изображение на сервер, используя Xcode 6 и файл PHP

Я пытаюсь отправить изображение на свой веб-сайт в зависимости от выбора пользователя, каждый раз, когда приложение должно дать имя изображения, которое было выбрано пользователем.

Я использую Xcode 6 и код ниже:

 NSString *urlString = @"http://MyWebSite.com/sendImages.php";
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSMutableData *body = [NSMutableData data];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[request addValue:contentType forHTTPHeaderField:@"Content-Type"];
// file
NSData *imageData = UIImageJPEGRepresentation(self.imageView.image,90);
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: attachment; name=\"userfile\"; filename=\"myImage.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:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
// close form
[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
// set request body
[request setHTTPBody:body];
//return and test
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success" message:returnString delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];

И это мой файл PHP:

<?
$myparam = $_FILES['userfile']; //getting image Here //getting textLabe Here
$target_path = "khadamati/";
if(move_uploaded_file($myparam['tmp_name'], $target_path . basename( $myparam['name'])))

{ echo "The file ". basename( $myparam['name']). " has been uploaded"; }

else

{ echo "There was an error uploading the file, please try again!"; }

?>

Как я могу изменить имя myImage в этой строке:

[body appendData:[@"Content-Disposition: attachment; name=\"userfile\"; filename=\"myImage.jpg\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

Я пытался найти что-нибудь тонкое, что помогло бы мне, но я не смог, поэтому, пожалуйста, найдите ошибку в моем коде стенда.

4

Решение

Ты должен попробовать это,

uname, datestring (я использовал здесь, чтобы определить пользователя, который загрузил и время, когда он загрузил).

[body appendData:[[NSString stringWithString:[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@receipt%@.jpg\"\r\n", uname,datestring]] dataUsingEncoding:NSUTF8StringEncoding]];

Я надеюсь, что это будет полезно для вас,
uname и datestring оба являются строками!

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]