欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

.NetCore如何實(shí)現(xiàn)下載文件-創(chuàng)新互聯(lián)

這篇文章主要介紹.Net Core如何實(shí)現(xiàn)下載文件,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)專注于巴楚企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站定制開(kāi)發(fā)。巴楚網(wǎng)站建設(shè)公司,為巴楚等地區(qū)提供建站服務(wù)。全流程專業(yè)公司,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
  • 允許站點(diǎn)不識(shí)別content-type下載文件(即:不受mime類型限制下載)

  • 如何允許下載.nupkg和.apk后綴的文件

  • Razor模板的post下載文件例子

  • 半年來(lái)使用NetCore的一些感想和焦慮

允許站點(diǎn)不識(shí)別content-type下載文件(即:不受mime類型限制下載)

對(duì)于netcore的web項(xiàng)目而言,內(nèi)置了一些content-type允許下載的文件類型;我們將通過(guò)一個(gè)普通的razorweb項(xiàng)目來(lái)看看直接通過(guò)連接下載excel例子;首先,在項(xiàng)目的wwwroot目錄創(chuàng)建一個(gè)bak文件夾,然后在該目錄下存放如下幾種文件:

.Net Core如何實(shí)現(xiàn)下載文件

通過(guò)測(cè)試這個(gè)時(shí)候只有excel.xls文件是能直接被下載的,其他的都是404:

.Net Core如何實(shí)現(xiàn)下載文件

要想.apk,.nupkg.cs等后綴的文件不被限制,我們可以通過(guò) public static IApplicationBuilder UseStaticFiles(this IApplicationBuilder app, StaticFileOptions options); 擴(kuò)展來(lái)設(shè)置,我們僅僅只需要修改為如下代碼:

            app.UseStaticFiles(new StaticFileOptions
            {                //設(shè)置不限制content-type
                ServeUnknownFileTypes = true 
            });

然后在重啟運(yùn)行,這個(gè)時(shí)候我們?cè)賮?lái)訪問(wèn)下載這幾個(gè)文件就沒(méi)問(wèn)題了(注意這個(gè)時(shí)候下載任何后綴的文件都行),如下截圖:

.Net Core如何實(shí)現(xiàn)下載文件

至于cs后綴的文件在google瀏覽器中是直接顯示的內(nèi)容,這里就不貼圖了,有興趣的可以試試;

如何允許下載.nupkg和.apk后綴的文件

通過(guò)上面例子我們能夠使用 ServeUnknownFileTypes = true; 直接設(shè)置無(wú)限制下載文件類型,這種通常不是太好或者說(shuō)不允許,亦或者不常說(shuō)的不安全吧;如果我們只需要增加.nupkg和.apk后綴的文件的下載,那么可以通過(guò)如下代碼來(lái)添加mime類型,如:

app.UseStaticFiles(new StaticFileOptions
            {                //ServeUnknownFileTypes = true 
                ContentTypeProvider = new FileExtensionContentTypeProvider(new Dictionary<string, string>
                {
                    { ".apk","application/vnd.android.package-archive"},
                    { ".nupkg","application/zip"}
                })
            });

同樣的也能對(duì)excel,apk,nupkg后綴的文件進(jìn)行下載:

.Net Core如何實(shí)現(xiàn)下載文件

但是這個(gè)時(shí)候我們?cè)L問(wèn) http://localhost:1120/bak/Startup.cs 就得不到下載的內(nèi)容了:

.Net Core如何實(shí)現(xiàn)下載文件

因?yàn)槲覀儧](méi)有添加對(duì).cs文件的擴(kuò)展類型,故而系統(tǒng)直接給咋們返回404;這里我們通過(guò)FileExtensionContentTypeProvider對(duì)象的構(gòu)造函數(shù)傳遞了一個(gè)mapping的dic類型來(lái)讓項(xiàng)目知道允許下載的content-type類型的文件;

Razor模板的post下載文件例子

老實(shí)說(shuō)最近一端時(shí)間有空我就會(huì)研究下Razor模板,下面我們將通過(guò)她的post表單的方式來(lái)請(qǐng)求后端下載文件的方法;下面直接給出login.cshtml文件的代碼:

@page
@model LoginModel
@{}<form method="post">
    <button type="submit" asp-page-handler="down" class="btn">下載</button>
    <button type="submit" asp-page-handler="down01" class="btn">下載01</button>
    <button type="submit" asp-page-handler="down02" class="btn">下載02</button>
</form>

這里值得注意的是,razor通過(guò)asp-page-handler=來(lái)執(zhí)行請(qǐng)求后端的方法,我們來(lái)看看最終她生成的html代碼后是什么樣子的:

.Net Core如何實(shí)現(xiàn)下載文件

能夠看出這里主要通過(guò)handler作為參數(shù)名稱來(lái)傳遞請(qǐng)求的后端方法,下面再來(lái)看看后端代碼這樣寫的(為了方便下載文件的路勁我以love.apk為例):

/// <summary>
        /// 虛擬文件地址輸出下載        
        /// </summary>
        /// <returns></returns>
        public IActionResult OnPostDown()
        {            
        var addrUrl = "/bak/love.apk";            
        return File(addrUrl, "application/vnd.android.package-archive", Path.GetFileName(addrUrl));
        }        
        /// <summary>
        /// 文件流的方式輸出        /// </summary>
        /// <returns></returns>
        public IActionResult OnPostDown01()
        {            
        var addrUrl = @"D:\F\學(xué)習(xí)\vs2017\netcore\Study.AspNetCore\WebApp02-1\wwwroot\bak\love.apk";            
        var stream = System.IO.File.OpenRead(addrUrl);            
        return File(stream, "application/vnd.android.package-archive", Path.GetFileName(addrUrl));
        }        
        /// <summary>
        /// 通過(guò)HttpClient獲取另外站點(diǎn)的文件流,再輸出        
        /// </summary>
        /// <returns></returns>
        public async Task<IActionResult> OnPostDown02()
        {            var path = "https://files.cnblogs.com/files/wangrudong003/%E7%89%B9%E4%BB%B701.gif";
            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri(path);            
            var stream = await client.GetStreamAsync(path);            
            return File(stream, "application/vnd.android.package-archive", Path.GetFileName(path));
        }

后端3個(gè)post接受方法都同樣使用了FileStreamResult來(lái)輸出下載文件,不同點(diǎn)在于文件來(lái)源不同;

對(duì)于簡(jiǎn)單一些的站點(diǎn)來(lái)說(shuō),下載文件一般存在于站點(diǎn)目錄下,有點(diǎn)類似于我這里的wwwroot/bak目錄,因此能夠通過(guò)站點(diǎn)虛擬目錄下載,也就是咋們第一種的下載方式;

有一些站點(diǎn)為了文件安全性,一般會(huì)存在于web站點(diǎn)的相同服務(wù)器磁盤中,因此需要通過(guò)這里的第二種方式獲取文件流,再傳遞給File();

最后一種就是把自己其他站點(diǎn)或者別人站點(diǎn)上的文件轉(zhuǎn)一下,當(dāng)做自己的文件來(lái)輸出,這種方式也就是咋們常說(shuō)的盜鏈方式之一;

對(duì)于razor的handler參數(shù),這里需要注意的是她對(duì)應(yīng)是咋們后端代碼OnGetxxx或者OnPostxxx方法中的xxx名稱,這是一種razor請(qǐng)求規(guī)范,必須要遵守哦。

以上是.Net Core如何實(shí)現(xiàn)下載文件的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站欄目:.NetCore如何實(shí)現(xiàn)下載文件-創(chuàng)新互聯(lián)
鏈接地址:http://aaarwkj.com/article40/jsoeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、網(wǎng)站制作、微信小程序動(dòng)態(tài)網(wǎng)站、虛擬主機(jī)、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
亚洲精品国产精品粉嫩| 日韩av在线高清播放| 视频二区国产欧美日韩| av天堂午夜精品蜜臀| 日本色电影一区二区三区| 高潮的毛片激情久久精品| 日韩电影网国产精品| 国产三级国产精品国产国在线观看| 国产精品精品国产色婷婷| 国产精品麻豆久久av| 亚洲av成人精品网站推荐| 日本一区二区手机在线| 亚洲日本欧美激情综合| 欧美性生活在线视频观看| 亚洲乱色熟女一区二区三区麻豆| 欧美日韩一级一区二区三区| 亚洲国产传媒在线观看| 国产美女作爱视频网站| 午夜午色夜之日本福利片| 欧洲精品久久久久久| 日本韩国国产三级在线| 亚洲国产av国产av| 草草视频在线观看网站| 人妻中文字幕在线一二区| 亚洲成人av综合在线| 很黄无遮挡在线免费网站| 亚洲欧美制服另类国产| 日本人妻久久中文字幕精品| 女人的天堂亚洲的天堂欧美| 四虎成人免费永久视频| 欧美美女福利午夜视频| 午夜性色福利在线播放| 蜜桃一区二区三区免费| 97视频精品在线播放| 国产美女亚洲精品久久久| 日本不卡一区二区视频| 精品自拍一区在线观看| 国产精品三级玖玖玖电影| 熟妇一区二区三区av| 欧美香蕉视频播放二区| 日韩不卡在线免费观看视频|