2016-04-20 7 views
1

zipファイルをwebからasp.net mvcのバックグラウンドに転送して、自分のサーバーに解凍できるプラグインを作りたいと思います。私のウェブサイトでベース64のジッパーストリームを解凍する

、私は <input type="file" id="FileZip"> zipファイルを選択して、私の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

を参照するために "System.IO.Compression.FileSystem.dll" を追加してください? –

+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); 
    } 

あなたが

を使う意味

+0

ファイルはクライアント側のみにあり、サーバー側ではパスがわからないので、私はbase64文字列を知っています。 –

+0

@CeryDeデコード時にBase64文字列は何を表しますか? –

+0

データ:application/x-zip-compressed; base64、 –