日韩av无码中文字幕,国产午夜亚洲精品国产成人小说,成人影院午夜男女爽爽爽,欧美 亚洲 中文 国产 综合

首頁(yè) 熱點(diǎn) 要聞 國(guó)內(nèi) 產(chǎn)業(yè) 財(cái)經(jīng) 滾動(dòng) 理財(cái) 股票

NET Core WebAPI 基礎(chǔ) 文件上傳

2023-08-31 04:40:30 來(lái)源 : 中年農(nóng)碼工

有新人小伙伴就問(wèn)了,那文件上傳呢,這個(gè)怎么弄,借此我寫(xiě)了一個(gè)小demo,分享給大家。

通常來(lái)說(shuō),上傳文件,我們是使用POST,還是老規(guī)矩先上代碼:

txt文件


(相關(guān)資料圖)

這是需要上傳的txt文件。

指定文件參數(shù)名

代碼

[HttpPost(\"UploaFile\")]public async Task>UploadFileAsync(IEnumerablefiles){    var fileStream = files.FirstOrDefault()?.OpenReadStream();    var fileContent = new StringBuilder();    if (fileStream != null)    {        using var reader = new StreamReader(fileStream!);        while (reader.Peek() >= 0)        {            fileContent.AppendLine(await reader.ReadLineAsync());        }    }    var result = new Dictionary()    {        [\"fileContent\"] = fileContent.ToString()    };    return result;}

調(diào)用示例

這里有一個(gè)需要注意的地方,就是上傳文件的參數(shù)名,需要跟接口的入?yún)⒚恢?,也就?files,我們使用的類型為 IEnumerable,主要是 IFormFile 這個(gè),因?yàn)槲覀兩蟼鞯奈募赡懿恢挂粋€(gè),所以這里使用了集合,要是不喜歡 IEnumerable,換成 List 也是可以的;

不指定文件參數(shù)名

而在實(shí)際開(kāi)發(fā)中,我們可能會(huì)碰到前端不配合,或者參數(shù)名改來(lái)改去,我們后端又不想頻繁更改,那怎么辦呢,此時(shí)我們可以使用以下的方法,不過(guò)我個(gè)人不太建議,還是好好溝通的好,不然別人看到你的接口文檔,例如swagger,都不知道你這個(gè)接口是上傳文件的。

代碼

[HttpPost(\"UploaFile2\")]public async Task>UploadFile2Async(){                var fileStream = HttpContext.Request.Form.Files.FirstOrDefault()?.OpenReadStream();    var fileContent = new StringBuilder();    if (fileStream != null)    {        using var reader = new StreamReader(fileStream!);        while (reader.Peek() >= 0)        {            fileContent.AppendLine(await reader.ReadLineAsync());        }    }    var result = new Dictionary()    {        [\"fileContent\"] = fileContent.ToString()    };    return result;}

示例

可以看到,結(jié)果是一樣的。

混合

而同樣是一個(gè)POST請(qǐng)求,自然是可以通過(guò)url,route,from這些傳參啦!

代碼

[HttpPost(\"{method}/{value}/UploaFile\")]public async Task>UploadFileAsync(    [FromRoute] Parameter route,    [FromQuery] Parameter query,    [FromForm] Parameter form,    IEnumerablefiles){    var fileStream = files.FirstOrDefault()?.OpenReadStream();    var fileContent = new StringBuilder();    if (fileStream != null)    {        using var reader = new StreamReader(fileStream!);        while (reader.Peek() >= 0)        {            fileContent.AppendLine(await reader.ReadLineAsync());        }    }    var result = new Dictionary()    {        [\"route\"] = route,        [\"query\"] = query,        [\"form\"] = form,        [\"fileContent\"] = fileContent.ToString()    };    return result;}

示例

關(guān)于文件上傳,在微軟的官網(wǎng)中也有對(duì)應(yīng)的文檔,感興趣的小伙伴可以去看看,傳送門(mén),感謝各位的閱讀,有任何問(wèn)題歡迎評(píng)論區(qū)留言!

關(guān)鍵詞:

相關(guān)文章

最近更新
精彩推送
tr600摩托車(tr600) 2023-08-31 04:21:51
中建筑港集團(tuán)與青島市工程咨詢?cè)汉献? 2023-08-31 04:10:19