2016-04-06 5 views
4

Я хочу загрузить pdf-файл. Когда я загружаю небольшой pdf-файл, я получаю плюс значение, но когда я загружаю большой файл, я получаю минус-значение, используя afnetworking.Отрицательное значение в процессе выполнения во время загрузки файла

вот мой код:

- (IBAction)download:(id)sender { 


    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@""]]; 
    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; 
    NSString *pdfName = @"The_PDF_Name_I_Want.pdf"; 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:pdfName]; 
    operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO]; 
    [operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) { 

     NSLog(@"Download = %f", (float)totalBytesRead/totalBytesExpectedToRead); 
       self.progressView3.progress = (float)totalBytesRead/totalBytesExpectedToRead; 

    }]; 
    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 
     NSLog(@"Successfully downloaded file to %@", path); 
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
     NSLog(@"Error: %@", error); 
    }]; 

    [operation start]; 
} 

увидеть мой выход

2016-04-06 15:04:53.842 pdf[8149:60b] Download = -811521.000000 
2016-04-06 15:04:53.849 pdf[8149:60b] Download = -817179.000000 
2016-04-06 15:04:53.860 pdf[8149:60b] Download = -819123.000000 
2016-04-06 15:04:53.872 pdf[8149:60b] Download = -823469.000000 
2016-04-06 15:04:53.879 pdf[8149:60b] Download = -826393.000000 
2016-04-06 15:04:53.921 pdf[8149:60b] Download = -827820.000000 
2016-04-06 15:04:53.932 pdf[8149:60b] Download = -830744.000000 
2016-04-06 15:04:53.939 pdf[8149:60b] Download = -833662.000000 

пожалуйста решить мою проблему ...

+0

Каковы значения ('totalBytesRead' и' totalBytesExpectedToRead')? Можно быть отрицательным, какой? Или это брошенный вопрос. – Larme

+0

здесь это отрицательное значение (float) totalBytesRead/totalBytesExpectedToRead – iOS

+0

Я знаю, что я понял лог-файлы, которые вы положили, но учитывая каждый из значений, является ли один из них отрицательным? Как плавать? Как долго? – Larme

ответ

1

ваша проблема длина содержимого, чтобы загрузить PDF-файл в сервере .totalBytesExpectedToRead является -1, если заголовок HTTP Content-Length не предусмотрено

по server.you следует либо добавить этот заголовок на сервер, или обрабатывать -1, показывая UIActivityIndicator вместо UIProgressView.

1

Как показывают ваши журналы, то totalBytesExpectedToRead -1. Это происходит, когда не указан в заголовках ответов.

Вы можете справиться с этим, попросив реселлеров на стороне сервера вернуть соответствующую Content-Length или в приложение iOS, показывая простой индикатор активности вместо представления прогресса.

 Смежные вопросы

  • Нет связанных вопросов^_^