2011-07-08 11 views
2

現在、SSZipArchiveメソッドを使用してzipファイルをダウンロードし、Documentsディレクトリフォルダに解凍します。私はURLからzipファイル名をダウンロードしていますが、現在のところ、更新があるたびにファイル名が変更されるため、ファイル名は認識されません。データの受信時にファイル名を取得するにはどうすればよいですか?iphoneでダウンロード中のzipファイル名を取得する方法

- (void)viewDidLoad { 
    fileManager = [NSFileManager defaultManager]; 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    directoryPath = [paths objectAtIndex:0]; 
    filePath = [NSString stringWithFormat:@"%@/ZipFiles.zip", directoryPath]; 

    NSURL *url=[NSURL URLWithString:@"http://www.abc.com/test/test.cfc?id=123"]; 

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
    [request setURL:url]; 
    [request setHTTPMethod:@"POST"]; 
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 

NSError *error; 
NSURLResponse *response; 
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

[fileManager createFileAtPath:filePath contents:urlData attributes:nil]; 
[SSZipArchive unzipFileAtPath:filePath toDestination:directoryPath]; 

NSString *responseString = [[NSString alloc] initWithData:urlData encoding:NSASCIIStringEncoding]; 


///***Answer to my own question for future needs****// 
    NSString *fileName = [response suggestedFilename]; 

} 

答えて

5

NSURLResponseこの順にファイル名を取得しようとする方法- (NSString *)suggestedFilenameを持っています。

  1. コンテンツ処理ヘッダーを使用して指定されたファイル名。
  2. URLの最後のパスコンポーネント。
  3. URLのホスト。

content dispositionヘッダーが最適なソリューションであるため、サーバーが設定することを確認してください。

+0

Joe:ありがとうございました。同じトピックについて簡単な質問をしたかっただけです.HTTPRequest経由でPOSTとしてファイル名をどのように送信しますか?どのように私は文字列としてそれをPOSTとして送信することができますか? – lifemoveson

+0

私はそれを購入しようとしていないので、実際にはわかりません。コンテンツの配置ヘッダーを送り返してからサーバー上で確認してみてください。 – Joe

関連する問題