Web ZIP archive uploader

ASP.NET ZIP archive uploader and extractor.

Demonstrates uploading and extracting ZIP archives into a folder at the web server. Uses simple static methods of the ZipArchive object to extract the contents of a ZIP archive uploaded to the ASP.NET web page.

The following code snippet shows the core of this sample:


// construct physical paths
string targetFolder = @"c:\temp";
string archiveFileName = Path.GetFileName(FileUploadControl.PostedFile.FileName);
string archiveFilePath = Path.Combine(targetFolder, archiveFileName);

// check the uploaded file
if (FileUploadControl.PostedFile.ContentLength <= 0)
    throw new SampleException("No data uploaded.");

// upload archive file first

// unzip the archive
ArchiveOperationResult res = ZipArchive.ExtractAll(

// display the number of extracted files
UploadedFiles.Text = res.FilesAffected.ToString();


' construct physical paths
Dim targetFolder As String = "c:\temp"
Dim fileName As String = Path.GetFileName(FileUploadControl.PostedFile.FileName)
Dim filePath As String = Path.Combine(targetFolder, fileName)

' check the uploaded file
If FileUploadControl.PostedFile.ContentLength <= 0 Then
    Throw New SampleException("No data uploaded.")
End If

' upload archive file first

' unzip the archive
Dim res As ArchiveOperationResult = ZipArchive.ExtractAll( _
    filePath, _
    targetFolder, _
    TransferMethod.Copy, _

' display the number of extracted files
UploadedFiles.Text = res.FilesAffected.ToString()


If you need to upload larger ZIP archives, you have to increase the limit for HTTP request length using the following line in the web.config:

    <!-- Allow to upload ZIP files up to 100 MB with timeout up to 10 minutes -->
    <httpRuntime maxRequestLength="102400" executionTimeout="600" />