如何获取远程文件大小以增加进度条?

时间:2011-01-26 11:14:38

标签: iphone objective-c ipad pdf uiprogressview

我需要从网上下载大型pdf,我创建了一个进度条控制器。

enter image description here

但是,我如何设置最大进度值,我不知道下载前的pdf大小?
有没有办法获取文件大小并使用它来增加进度条?

我正在使用

myPDFremoteUrl = "http://www.xasdaxxssxx.pdf";
- (float) getFileSize {
    NSFileManager *man = [[NSFileManager alloc] init];
    NSDictionary *attrs = [man attributesOfItemAtPath: myPDFremoteUrl error: NULL];
    UInt32 result = [attrs fileSize];

    return (float)result;
}

但是我无法以这种方式检查远程尺寸......

任何想法?
感谢

3 个答案:

答案 0 :(得分:2)

我会使用ASIHTTPRequest进行数据检索。它有progress monitoring built in

如果您真的想坚持自己所拥有的,那么您可以查看HTTP标头。它有一个名为“Content-Length”的属性可以帮助你。

祝你好运。

答案 1 :(得分:1)

ASIHTTPRequestdownloadProgressDelegate可以为您处理此问题 - 它非常易于使用。

答案 2 :(得分:0)

解决。

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    dimensione = (float)[response expectedContentLength];

    NSLog(@"content-length: %f bytes", dimensione);
}

我忘了didReceiveResponse

好。