+ Start a Discussion
SS KarthickSS Karthick 

Create Zipfile in salesforce

Hi folks,
      Can anyone tell me how to create a zip file in salesforce via apex?
I have seen the below link but it doesnt work for me.
http://www.valnavjo.com/blog/compressing-files-in-salesforce/

Please someone give me the working code sinppet for creating zipfile.

Thanks in advance
Karthick
Ravikant kediaRavikant kedia
             String result= res.getHeader('result');
        
              //Get body as a blob
              Blob ResponseString=res.getBodyAsBlob();
              System.debug('Response str is   '+ResponseString);  
              //save file in Attachment
              attachment DataFile = new attachment();
              //store file as a zip file        
              DataFile.Name = 'xyzzipfile.zip';       
              DataFile.ParentId ='a049000000HRSkc';                            
              DataFile.body = ResponseString; 
              DataFile.contentType='application/x-zip-compressed';
              insert DataFile;   
Similer to above method you  can create zip file in apex
 
SS KarthickSS Karthick
@Ravikant kedia:
  My usecase is download all the attachements on click of visualforce button.
For that we need to create a zip file which contains all the attachments.
I need a sample code for my usecase.


Thanks in advance,
Karthick
Pedro I Dal ColPedro I Dal Col
You can use the Zippex library to do this. It's open source. https://github.com/pdalcol/Zippex
//First create a blank zip archive
Zippex zip = new Zippex();

//Add files one by one using the addFile() method
//The first parameter is the filename
//The second parameter is a Blob with the file contents
//The thrid parameter is the file chechsum, you can pass null
zip.addFile('sampleFile1.txt', Blob.valueOf('Sample text1.'), null);
zip.addFile('sampleFile2.txt', Blob.valueOf('Sample text2.'), null);
...
//Finally fetch the resulting zip file
Blob zipBlob = zip.getZipArchive();