Ниже приведен фрагмент для загрузки файла изображения. Я хочу использовать только NSURLSessionUploadTask, поскольку он предоставляет функцию фоновой загрузки, которую я хочу использовать в своем приложении.NSURLSessionUploadTask не удалось загрузить файл
Также я хочу параметр POST вместе с загрузкой файла.
Кроме того, я не очень хорошо разбираюсь в серверном коде. Может кто-нибудь подскажет мне, что я делаю неправильно.
Загрузить код
NSString* filePath = [[NSBundle mainBundle]
pathForResource:@"sample" ofType:@"jpg"];
uint64_t bytesTotalForThisFile = [[[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:NULL] fileSize];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:uploadPath];
[request setHTTPMethod:@"POST"];
[request setValue:[NSString stringWithFormat:@"%llu", bytesTotalForThisFile] forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/octet-stream" forHTTPHeaderField:@"Content-Type"];
[request setTimeoutInterval:30];
NSString* filePath = [[NSBundle mainBundle]
pathForResource:@"sample" ofType:@"jpg"];
NSURLSessionUploadTask *taskUpload= [self.uploadSession uploadTaskWithRequest:request fromFile:[[NSURL alloc] initFileURLWithPath:filePath]];
PHP код
<?php
$objFile = & $_FILES["file"];
$strPath = basename($objFile["name"]);
if(move_uploaded_file($objFile["tmp_name"], $strPath)) {
print "The file " . $strPath . " has been uploaded.";
} else {
print "There was an error uploading the file, please try again!";
}
Со стороны сервера я получаю пустой массив для $ _FILES
Я использую фоновый сеанс не по умолчанию, также в обработчике фона не допускается обработчик завершения. Также NSData как изображение не допускается как изображение. – Mukesh