兩個上傳的block方法,一個方法會調用兩次然後計算出文件上傳大小,一個是方法是計算出實時上傳了好多的數據,然而在asihttp上傳隊列中算上傳比例的話,算出來的比例是有誤差的。需要在a/b後面再加上一個修正值c。
正確的計算公司應爲
實時上傳百分比 = a/b + c;
其中 a += 第一個block的第一個值
b += 第二個block的第一個值
c 等於total
//顯示精確進度
request.showAccurateProgress = YES;
__block float totalSize = 0;
__block float theSize = 0;
//這個方法會調用兩次
[request setUploadSizeIncrementedBlock:^(long long size) {
totalSize = totalSize + size;
NSLog(@"%f",totalSize);
}];
//在隊列上傳的時候需要加上total這個修正值
[request setBytesSentBlock:^(unsigned long long size, unsigned long long total) {
//the total is 修正量
theSize += size;
NSLog(@"%f",theSize/totalSize + total);
}];
[request setCompletionBlock:^{
NSString *result = [request responseString];
NSLog(@"the reuslt is %@",result);
}];
[request setFailedBlock:^{
NSLog(@"failed");
}];
[request startAsynchronous];