2011-01-26 4 views
1

Webから大きなpdfをダウンロードする必要があり、プログレスバーコントローラを作成しました。私はそれが私がダウンロードする前に、PDFのサイズがわからない最大進捗値を設定する方法プログレスバーをインクリメントするリモートファイルサイズを取得するにはどうすればよいですか?

enter image description here

しかし、?
ファイルサイズを取得し、プログレスバーをインクリメントするために使用する方法はありますか?

任意のアイデアを私は

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; 
} 

を使用していますが、私はこの方法でリモートサイズを確認することはできません...


ありがとう

答えて

2

データの取得にはASIHTTPRequestを使用します。それはprogress monitoring built inです。

あなたが実際に持っているものに固執したい場合は、HTTPヘッダーを見ることができます。それはあなたを助ける "Content-Length"と呼ばれるプロパティを持っています。

幸運。

+0

Cool。私はこれが好きです! – elp

+1

ASIHTTPRequestはiOS5では正常に動作せず、開発者はプロジェクトを管理しなくなりました。私はあなたがCFNetworkingのようなこの機能を他の場所で探すことをお勧めします。 – BBonifield

1

ASIHTTPRequestは、あなたのためにこれを扱うことができる非常に使いやすい - downloadProgressDelegateを持っています。

0

解決済み。

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

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

私はdidReceiveResponseを忘れています!

良い。

+0

次元で宣言したデータ型のコード。 – kanmani

+0

@iphonecool:float – elp

関連する問題