第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當(dāng) C# 迭代 zipfile 時,HttpPostedFileBase 獲取內(nèi)容長度為 0

當(dāng) C# 迭代 zipfile 時,HttpPostedFileBase 獲取內(nèi)容長度為 0

C#
慕村225694 2023-07-23 14:20:26
我有一個網(wǎng)絡(luò)界面,用戶可以從本地計算機中選擇多個文件之一并將它們上傳到中央位置,在本例中為Azure Blob Storage。我檢查了我的C#代碼以驗證文件名結(jié)尾是否為.bin. 中的接收方法C#采用一個數(shù)組HttpPostedFileBase。我想允許用戶選擇一個 zip 文件。在我的C#代碼中,我迭代 zip 文件的內(nèi)容并檢查每個文件名以驗證結(jié)尾是否為.bin.但是,當(dāng)我迭代 zip 文件時,對象ContentLength的HttpPostedFileBase變?yōu)?(零),當(dāng)我稍后將 zip 文件上傳到 時Azure,它是空的。如何在不操作 zip 文件的情況下檢查文件名結(jié)尾?我嘗試過DeepCopy單個對象,HttpPostedFileBase但它不可序列化。我試圖復(fù)制該文件,array但沒有任何作用。看來一切都是參考,沒有價值。我的代碼的一些示例如下。是的,我單獨嘗試了這些線路。private static bool CanUploadBatchOfFiles(HttpPostedFileBase[] files){    var filesCopy = new HttpPostedFileBase[files.Length];    // Neither of these lines works    Array.Copy(files, 0, filesCopy, 0, files.Length);    Array.Copy(files, filesCopy, files.Length);    files.CopyTo(filesCopy, 0);}這就是我迭代 zip 文件的方式foreach (var file in filesCopy){    if (file.FileName.EndsWith(".zip"))    {        using (ZipArchive zipFile = new ZipArchive(file.InputStream))        {            foreach (ZipArchiveEntry entry in zipFile.Entries)            {                if (entry.Name.EndsWith(".bin"))                {                    // Some code left out                }            }        }    }}
查看完整描述

1 回答

?
30秒到達(dá)戰(zhàn)場

TA貢獻(xiàn)1828條經(jīng)驗 獲得超6個贊

我解決了我的問題。我必須做兩件不同的事情:


首先,我不做數(shù)組的副本。相反,對于每個 zip 文件,我只是復(fù)制流。這使得 ContentLength 保持在原來的長度。


所做的第二件事是在查看 zip 文件后重置位置。我需要執(zhí)行此操作,否則上傳到 Azure Blob 存儲的 zip 文件將為空。


private static bool CanUploadBatchOfFiles(HttpPostedFileBase[] files)

{

    foreach (var file in files)

    {

        if (file.FileName.EndsWith(".zip"))

        {

            // Part one of the solution

            Stream fileCopy = new MemoryStream();

            file.InputStream.CopyTo(fileCopy);


            using (ZipArchive zipFile = new ZipArchive(fileCopy))

            {

                foreach (ZipArchiveEntry entry in zipFile.Entries)

                {

                    // Code left out

                }

            }


            // Part two of the solution

            file.InputStream.Position = 0;

        }

    }


    return true;

}


查看完整回答
反對 回復(fù) 2023-07-23
  • 1 回答
  • 0 關(guān)注
  • 213 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號