Как отправить данные поста и файл изображения на сервер Xcode

Как я могу загрузить некоторую текстовую информацию (текстовую строку) и файл изображения через один и тот же запрос HTTP post на сервер. Я загрузил изображения сам по себе, но не могу получить текст для работы с ним. Спасибо!

 akk29 июн. 2012 г., 14:49
Используете ли вы какой веб-сервис & REST; REST? & Quot; SOAP-& Quot; или "JSON" какой вы будете использовать?
 user52975829 июн. 2012 г., 15:04
& quot; Цель c. Это аналогичный вопрос, но мне нужен текст. & Quot; Я не спрашивал, какой ЯЗЫК (это ЯВНО ЦЕЛЬ-С), но какой СЕРВИС. Гугл документы? Instagram? Dropbox? ЧТО?
 sebi29 июн. 2012 г., 14:44
Задача c, это похожий вопрос, но мне нужен текст.
 sebi29 июн. 2012 г., 14:44
 user52975829 июн. 2012 г., 14:39
Какой это сервис?

Ответы на вопрос(3)

SVHttp Запрос загружать файлы на сервер.

отправьте imageFile и другие материалы в параметре:

NSMutableDictionary *data = [[NSMutableDictionary alloc] init];
    [data setObject:imageData forKey:@"image"];
    [data setObject:@"saveimage" forKey:@"action"];
    [data setObject:userId forKey:@"userid"];
    [data setObject:@"png" forKey:@"type"];

И сделать запрос:

SVHTTPClient *request = [SVHTTPClient sharedClient];

    [request setBasicAuthWithUsername:nil password:nil];
    [request setSendParametersAsJSON:NO];



    [request POST:[NSString stringWithFormat:@"http://bylyngo.com/getapi/?action=saveimage&userid=%@&type=png",userId]
       parameters:data
         progress:^(float progress) {

             NSLog(@"Uploading (%.0f%%)", progress*100);

         }];

Вы получите прогресс даже.

:)

-(void) uploadImage
{
    prodNam = txtProdName.text;
    UIImage * img = [UIImage imageNamed:@"SRT2.jpg"];
    NSData *imageData = UIImageJPEGRepresentation(img,0.2);     //change Image to NSData

    if (imageData != nil)

    {
        NSString * filenames = [NSString stringWithFormat:@"TextLabel"];
        NSLog(@"%@", filenames);

        NSString *urlString = @"http://dev9.edisbest.com/upload_image.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:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"filenames\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[filenames dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[@"Content-Disposition: form-data; name=\"userfile\"; filename=\"TestEdreamzIpad.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(@"Response : %@",returnString);

        if([returnString isEqualToString:@"Success ! The file has been uploaded"])
        {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Success" message:@"Image Saved Successfully" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];

            [alert show];
        }
    NSLog(@"Finish");
    }
}

Вы можете поместить любое изображение на место "SRT2.jpg". вашей xcode локальной иерархии.

Всего наилучшего...

 26 апр. 2013 г., 15:00
@ LaurenzGl & # xFC; ck: Код для: upload_image.php & lt;? Php $ target_path = & quot; iphonetest / & quot ;; $ target_path = $ target_path. $ _ FILES ["userfile"] ["имя"]; $ filename = $ _FILES ["userfile"] ["name"]; if (move_uploaded_file ($ _ FILES ["userfile"] ["tmp_name"], $ target_path)) {echo & quot; 1 & quot ;; } else {echo & quot; 0 & quot ;; }? & gt; & Quot; iphonetest & Quot; Каталог сервера, расположенный в корневом каталоге. Используйте и ответьте, стоит ли это вам?
 17 мар. 2013 г., 16:25
Эй, ты тоже можешь загрузить свой PHP-код? Я пробовал ваш код, но он всегда говорил "Произошла ошибка при загрузке файла, попробуйте еще раз!" И никакие данные не появляются на моем сервере ...
 23 авг. 2013 г., 07:35
@ LaurenzGl & # xFC; ck: & lt;? Php include ("include / connect.php"); включают в себя (& Quot; ../ WP-config.php & Quot;); / ** * путь загрузки изображения для добавления продукта * / $ wp_upload_dir = wp_upload_dir (); $ target_path = $ wp_upload_dir ["путь"]. "/"; $ target_path = $ target_path. $ _ FILES ["userfile"] ["имя"]; $ filename = $ _FILES ["userfile"] ["name"]; if (move_uploaded_file ($ _ FILES ["userfile"] ["tmp_name"], $ target_path)) {echo & quot; 1 & quot ;; echo $ target_path; } else {echo & quot; 0 & quot ;; echo $ target_path; }? & gt;
Решение Вопроса

NSData *imageData = UIImageJPEGRepresentation("yourImage",0.2);     //change Image to NSData

if (imageData != nil)
{
    filenames = [NSString stringWithFormat:@"TextLabel"];      //set name here
        NSLog(@"%@", filenames);
    NSString *urlString = @"http://xxxxxxx/yyyyy.php";

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSURL URLWithString:urlString]];
        [request setHTTPMethod:@"POST"];

        NSString *boundary = [NSString stringWithString:@"---------------------------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:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"filenames\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[filenames dataUsingEncoding:NSUTF8StringEncoding]];

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

        [body appendData:[[NSString stringWithString:@"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]];
    // setting the body of the post to the reqeust
    [request setHTTPBody:body];
    // now lets make the connection to the web
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
    NSLog(returnString);
    NSLog(@"finish");
}

В PHP стороне используйте этот код

$myparam = $_POST['userfile'];     //getting image Here
$mytextLabel= $_POST['filenames']   //getting textLabe Here
echo $myparam;
echo $mytextLabel; 
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['myfile']['name']);  

if(move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
    echo "The file ". basename( $_FILES['myfile']['name']) . " has been uploaded";
} else {
    echo "There was an error uploading the file, please try again!";
}
 sebi29 июн. 2012 г., 15:07
Я не могу сказать, где здесь установлена текстовая метка, скажем, текст "привет". Куда это должно идти в этом коде?
 sebi29 июн. 2012 г., 15:27
Хорошо, спасибо, понял, кстати, я не использовал ни одного из имени ресурса или набора символов, так как я не уверен, что он делает.
 29 июн. 2012 г., 15:09
Я обновил свой ответ ..

Ваш ответ на вопрос