Re: [問題] 一次下載多筆資料庫的image資料
之前寫過從DB撈檔案後用7z壓縮
然後把壓縮後的stream丟到網頁給使用者下載
使用的lib叫"SharpZipLib"
缺點就是要把7z的dll檔丟進去專案資料夾內
(可能可以用nuget,但是當時沒這樣處理)
大致上如下:
------------- 懶得幫code上色了0rz ------------
// dllPath就是對應到7z.dll的絕對位置
// 可能會長這個樣子:"c:/project/wwwroot/7z.dll"
// 要考慮到如果是在x64的環境下,要用7zx64.dll
var memoryStream = new MemoryStream();
SevenZipBase.SetLibraryPath(dllPath);
var zipCompressor = new SevenZipCompressor
{
ArchiveFormat = OutArchiveFormat.SevenZip,
CompressionMode = CompressionMode.Create,
DirectoryStructure = false
};
var dictForComporess = new Dictionary<string, Stream>();
// dbFiles是已經從db讀出來的List<自訂類別DbFile>
dbFiles.ForEach(file =>
{
// file.FileContent是byte[]
var stream = new MemoryStream(file.FileContent);
dictForComporess.Add(file.FileName, stream);
});
zipCompressor.CompressStreamDictionary(dictForComporess, memoryStream);
----------- 我是分隔線 ---------
當初有試過用.net內建(還是windows內建的?)的zip lib
但是QA(使用Mac)反應:解開後檔名是亂碼
所以後來改成用7z打包
以上,給您參考
也請各位前輩先進能給予指點<(_ _)>
※ 編輯: J002 (118.165.31.108), 05/23/2016 22:43:17
※ 編輯: J002 (118.165.31.108), 05/23/2016 22:50:09
推
05/30 00:35, , 1F
05/30 00:35, 1F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章