2016-04-20 32 views
1

我想做一個插件,它可以將zip文件從web轉移到asp.net mvc背景並將其解壓到我的服務器。解壓縮base64 zipstream

在我的網站,我選擇一個zip文件 <input type="file" id="FileZip"> 並張貼它的價值,我的asp.net方法

public async Task<string> FileTrs(string Zip) 

然後我得到了以下類型

數據的字符串: application/x-zip-compressed; base64,

我該如何解壓縮到我的服務器? 有人可以告訴我,謝謝!

回答

3

我會做這樣的事情,然後使用例如SharpZip-lib來解壓我的文件。如何使用SharpZip here

[HttpPost] 
public async Task<string> FileTrs() 
{ 
    if (Request.Files.Any) 
    { 
     var file = Request.Files[0]; 
     if (file != null && file.ContentLength > 0) 
     { 
      // Unzip file here with for example SharpZipLib 
     } 
    } 
} 

例子也許你需要在SharpoZipLib使用之前上傳的文件轉換成流。

+0

你的意思是使用

? –

+0

是的,要發佈您的文件,您必須在''標籤中使用 Hypnobrew

+0

我正在找到將base64轉換爲gzip流的方式,但失敗了。所以我很困惑,這種方法是否可以工作 –

0

對於.Net Framework 4.5及更高版本!這應適用於 解答如何解壓縮,如果你有權訪問服務器,它不應該是一個問題。

static void Extractor() 
    { 
     string whereMyZIPFileIs = @"path\fileName.zip"; 
     string whereIWantToExtract = @"pathOfExtraction"; 
     System.IO.Compression.ZipFile.ExtractToDirectory(whereMyZIPFileIs, whereIWantToExtract); 
    } 

請加 「System.IO.Compression.FileSystem.dll」 將參考

+0

該文件只在客戶端,而在服務器端我不知道路徑,我只知道base64字符串。 –

+0

@CeryDe Base64字符串在解碼時表示什麼? –

+0

data:application/x-zip-compressed; base64, –