2016-07-12 20 views
0

NSLOGをすべてテキストファイルに書き込み、テーブルビューのセルをクリックするとそのファイルをサーバに送信します。 NSURLConnectionを使用して投稿する前に、テキストファイルをzipファイルに変換します。しかし、Zipファイルの中にはいくつかのゴミデータがありますが、テキストファイルには正しい内容があります。私はSSZipArchive、私はファイルを投稿するために使用するコードは、どのような援助が大きな助けになるでしょうiOSでZipファイルが正しく作成されていません

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *logFilePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"Logger.txt"]]; 

NSString* zipfile = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"Logger.zip"]]; 
//create zip file, return true on success 

BOOL isZipCreated=[SSZipArchive createZipFileAtPath:zipfile withContentsOfDirectory:logFilePath]; 

if (isZipCreated) { 

    NSLog(@"Zip file Created at Path : %@",zipfile); 
    NSString *contentOfZipFile = [NSString stringWithContentsOfFile:zipfile encoding:NSUTF8StringEncoding error:NULL]; 
    NSData *zipData = [contentOfZipFile dataUsingEncoding:NSUTF8StringEncoding]; 


    NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[zipData length]]; 

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:finalURL]]; 
    [request setHTTPMethod:@"POST"]; 
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
    [request setValue:@"application/zip" forHTTPHeaderField:@"Content-Type"]; 
    [request setHTTPBody:zipData ]; 


    NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self]; 
} 

else { 
    NSLog(@"Zip create error"); 
} 

あるを使用しています。

答えて

2

このライブラリObjective-Zipを使用することができますが、実際にはこれを使用しています。

Zipファイルの作成:

ZipFile *zipFile= [[ZipFile alloc] initWithFileName:@"Logger.zip" mode:ZipFileModeCreate]; 

zipファイルにファイルを追加し

ZipWriteStream *stream= [zipFile writeFileInZipWithName:@"Logger.txt" compressionLevel:ZipCompressionLevelBest]; 

[ストリームの書き込みデータ:abcData]。 [stream finishedWriting];

zipファイルからファイルを読む:コーディング

ZipFile *unzipFile= [[ZipFile alloc] initWithFileName:@"Logger.zip" mode:ZipFileModeUnzip]; 

[unzipFile goToFirstFileInZip]; 

ZipReadStream *read= [unzipFile readCurrentFileInZip]; 
NSMutableData *data= [[NSMutableData alloc] initWithLength:256]; 
int bytesRead= [read readDataWithBuffer:data]; 

[read finishedReading]; 

ホープ、このコードがお手伝いします:) ハッピー!! ;)

+0

このライブラリをインストールするために必要なことを説明できますか? –

+0

プロジェクトにポッドを追加して、githubリンクで説明した手順に従うこともできます。 https://github.com/gianlucabertani/Objective-Zip –

+0

zipファイルはどこに作成されますか? –

関連する問題