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

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

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

[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 МБ и миниатюру версии (1-2 МБ)).

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

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

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

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

1

Решение

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

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

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

ASIHTTPRequest Post запрос завершается неудачно, пока работает через HTTPClient

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

0

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

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

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