Неверный индекс при публикации через ASync NSURLConnection

1

Я отправляю данные из IOS в php-скрипт. Поскольку переход от запроса синхронизации к Async мне не удалось заставить загрузку работать.

ОК, поэтому у меня есть следующие ошибки в моем журнале веб-сервера

[Sat Nov 28 13:18:56 2015] [error] [client 80.6.199.219:38875] AH01215: PHP Deprecated:  Comments starting with '#' are deprecated in public_html/iphone2/php.ini on line 1 in Unknown on line 0: public_html/iphone2/UploadImage.php
[Sat Nov 28 13:18:56 2015] [error] [client 80.6.199.219:38875] AH01215: PHP Notice:  Undefined index: user_id in public_html/iphone2/UploadImage.php on line 8: public_html/iphone2/UploadImage.php
[Sat Nov 28 13:18:56 2015] [error] [client 80.6.199.219:38875] AH01215: PHP Notice:  Undefined index: RequestID in public_html/iphone2/UploadImage.php on line 9: public_html/iphone2/UploadImage.php
[Sat Nov 28 13:18:56 2015] [error] [client 80.6.199.219:38875] AH01215: PHP Notice:  Undefined index: base64 in public_html/iphone2/UploadImage.php on line 10: public_html/iphone2/UploadImage.php
500kgiveaway.co.uk [Sat Nov 28 13:18:56 2015] [error] [client 80.6.199.219:38875] AH01215: PHP Notice:  Undefined index: base64_thumb in ublic_html/iphone2/UploadImage.php on line 11: public_html/iphone2/UploadImage.php
[Sat Nov 28 13:18:56 2015] [error] [client 80.6.199.219:38875] AH01215: PHP Notice:  Undefined index: ImageName in public_html/iphone2/UploadImage.php on line 14: public_html/iphone2/UploadImage.php
[Sat Nov 28 13:18:56 2015] [error] [client 80.6.199.219:38875] AH01215: PHP Notice:  Undefined index: ImageName in /home/sites/500kgiveaway.co.uk/public_html/iphone2/UploadImage.php on line 13: /home/sites/500kgiveaway.co.uk/public_html/iphone2/UploadImage.php
500kgiveaway.co.uk [Sat Nov 28 13:18:56 2015] [error] [client 80.6.199.219:38875] AH01215: PHP Notice:  Undefined index: ImageName in /home/sites/500kgiveaway.co.uk/public_html/iphone2/UploadImage.php on line 30: /home/sites/500kgiveaway.co.uk/public_html/iphone2/UploadImage.php
500kgiveaway.co.uk [Sat Nov 28 13:18:56 2015] [error] [client 80.6.199.219:38875] AH01215: PHP Notice:  Undefined index: ImageName in public_html/iphone2/UploadImage.php on line 42: public_html/iphone2/UploadImage.php
500kgiveaway.co.uk [Sat Nov 28 13:18:56 2015] [error] [client 80.6.199.219:38875] AH01215: PHP Warning:  file_put_contents(upload/images/): failed to open stream: Is a directory in public_html/iphone2/UploadImage.php on line 42: public_html/iphone2/UploadImage.php

Вот код для отправки запроса на отправку

- (void)uploadToServer:(NSString *)base64Large thumb:(NSString *)base64Thumb {

    NSString *poststring = @"";

    long currentTime = (long)(NSTimeInterval)([[NSDate date] timeIntervalSince1970]);
    NSString *currentTimeString = [NSString stringWithFormat:@"%ld",currentTime];
    NSString *fileName = [currentTimeString stringByAppendingString:@".jpg"];

    NSString *postImageName = @"ImageName=%imagename%&";
    postImageName =[postImageName stringByReplacingOccurrencesOfString:@"%imagename%" withString:fileName];

    poststring = [poststring stringByAppendingString:postImageName];


    NSString *postUserID = @"user_id=%UserID%&";
    postUserID =[postUserID stringByReplacingOccurrencesOfString:@"%UserID%" withString:@"2"];

    poststring = [poststring stringByAppendingString:postUserID];

    NSString *postRequestListID = @"RequestID=%RLID%&";
    postRequestListID =[postRequestListID stringByReplacingOccurrencesOfString:@"%RLID%" withString:self.golbalRequestListID];

    poststring = [poststring stringByAppendingString:postRequestListID];

    NSString *postBase64 = @"base64=%B64%&";
    postBase64 =[postBase64 stringByReplacingOccurrencesOfString:@"%B64%" withString:base64Large];
    postBase64 = [postBase64 stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"];

    poststring = [poststring stringByAppendingString:postBase64];

    NSString *postBase64thumb = @"base64_thumb=%B64T%&";
    postBase64thumb =[postBase64thumb stringByReplacingOccurrencesOfString:@"%B64T%" withString:base64Thumb];
    postBase64thumb = [postBase64thumb stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"];

    poststring = [poststring stringByAppendingString:postBase64thumb];


    //create the request

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"iphone2/UploadImage.php"]];

    //Specify that it will be a post request
    request.HTTPMethod = @"POST";

        //This is how we set header fields
    [request setValue:@"application/xml: charset=utf-8" forHTTPHeaderField:@"Content-Type"];

    //convert your data and set your requests httpbody property
    NSData *requestBodyData = [poststring dataUsingEncoding:NSUTF8StringEncoding];
    request.HTTPBody = requestBodyData;


    //create url connection and fire request
    NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];




}

Почтовый запрос содержит несколько записей для базы данных и 2 изображения в base64 (1 полноразмерное изображение размером около 5-7 мб и миниатюра versioin (1-2 МБ))

Как я уже говорил, это прекрасно работает при использовании метода Sync.

Я не получаю никаких ошибок в xcode, и когда я контролирую метод didSendBodyData, я вижу приложение, отправляющее данные.

Я действительно думал, что это может быть проблемой с почтовым запросом, однако я не могу найти способ проверить, действительно ли это. Я также понимаю, что это может быть проблема с объемом данных, которые я отправлял, поэтому я увеличил пост-лимит до 20 МБ

честно говоря, я не могу подумать, что еще может быть проблемой.

Теги:
nsurlconnection

1 ответ

0
Лучший ответ

Оказывается, это была проблема со значением поля заголовка

[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

Влияние было взято из следующего сообщения

Ошибка запроса ASIHTTPRequest при работе через HTTPClient

Надеюсь, это поможет кому-то еще

Ещё вопросы

Сообщество Overcoder
Наверх
Меню