最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.net core webapi 大文件上傳到wwwroot文件夾的操作代碼

 更新時(shí)間:2023年12月25日 14:40:56   作者:彭小彭~  
這篇文章主要介紹了.net core webapi 大文件上傳到wwwroot文件夾的操作代碼,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

1.配置staticfiles(program文件中)

 app.UseStaticFiles();

2.在wwwroot下創(chuàng)建upload文件夾
3.返回結(jié)果封裝

namespace webapi;
/// <summary>
/// 統(tǒng)一數(shù)據(jù)響應(yīng)格式
/// </summary>
public class Results<T>
{
    /// <summary>
    /// 自定義的響應(yīng)碼,可以和http響應(yīng)碼一致,也可以不一致
    /// </summary>
    public int Code { get; set; }
    /// <summary>
    /// 中文消息提示
    /// </summary>
    public string? Msg { get; set; }
    /// <summary>
    /// 是否成功
    /// </summary>
    public bool Success { get; set; }
    /// <summary>
    /// 響應(yīng)的數(shù)據(jù)
    /// </summary>
    public T? Data { get; set; }
    /// <summary>
    /// 返回的Token: 如果有值,則前端需要此這個(gè)值替舊的token值
    /// </summary>
    public string? Token { get; set; }
    /// <summary>
    /// 設(shè)置數(shù)據(jù)的結(jié)果
    /// </summary>
    /// <param name="data">數(shù)據(jù)</param>
    /// <returns></returns>
    public static Results<T> DataResult(T data)
    {
        return new Results<T> { Code = 1, Data = data, Msg = "請(qǐng)求成功", Success = true };
    }
    /// <summary>
    /// 響應(yīng)成功的結(jié)果
    /// </summary>
    /// <param name="msg"></param>
    /// <returns></returns>
    public static Results<T> SuccessResult(string msg = "操作成功")
    {
        return new Results<T> { Code = 1, Data = default, Msg = msg, Success = true };
    }
    /// <summary>
    /// 響應(yīng)失敗的結(jié)果
    /// </summary>
    /// <param name="msg"></param>
    /// <returns></returns>
    public static Results<T> FailResult(string msg = "請(qǐng)求失敗")
    {
        return new Results<T> { Code = -1, Data = default, Msg = msg, Success = false };
    }
    /// <summary>
    /// 參數(shù)有誤
    /// </summary>
    /// <param name="msg"></param>
    /// <returns></returns>
    public static Results<T> InValidParameter(string msg = "參數(shù)有誤")
    {
        return new Results<T> { Code = -1, Data = default, Msg = msg, Success = false };
    }
    /// <summary>
    /// 獲取結(jié)果
    /// </summary>
    /// <param name="code"></param>
    /// <param name="msg"></param>
    /// <param name="data"></param>
    /// <param name="success"></param>
    /// <returns></returns>
    public static Results<T> GetResult(int code = 0, string? msg = null, T? data = default, bool success = true)
    {
        return new Results<T> { Code = code, Data = data, Msg = msg, Success = success };
    }
    /// <summary>
    /// 設(shè)置token結(jié)果
    /// </summary>
    /// <param name="token"></param>
    /// <returns></returns>
    public static Results<T> TokenResult(string token)
    {
        return new Results<T> { Code = 1, Data = default, Msg = "請(qǐng)求成功", Success = true, Token = token };
    }
}

4.創(chuàng)建一個(gè)新的控制器

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.WebUtilities;
using Microsoft.Net.Http.Headers;
namespace webapi.Controllers;
/// <summary>
/// 文件上傳
/// </summary>
[ApiController]
[Route("[controller]/[action]")]
public class UploadController : ControllerBase
{
    private readonly IWebHostEnvironment _hostEnvironment;
    /// <summary>
    /// 注入服務(wù)
    /// </summary>
    /// <param name="hostEnvironment"></param>
    public UploadController(IWebHostEnvironment hostEnvironment)
    {
        _hostEnvironment = hostEnvironment;
    }
    /// <summary>
    /// 上傳文件(支持多文件/大文件500M)
    /// </summary>
    /// <returns></returns>
    [HttpPost]
    [RequestFormLimits(MultipartBodyLengthLimit = 609715200)]
    [RequestSizeLimit(609715200)]
    public async Task<Results<List<string>>> UploadFile()
    {
        var request = HttpContext.Request;
        if (!request.HasFormContentType ||
            !MediaTypeHeaderValue.TryParse(request.ContentType, out var mediaTypeHeader) ||
            string.IsNullOrEmpty(mediaTypeHeader.Boundary.Value))
        {
            return Results<List<string>>.FailResult("文件類型不支持");
        }
        var reader = new MultipartReader(mediaTypeHeader.Boundary.Value, request.Body);
        var section = await reader.ReadNextSectionAsync();
        List<string> serverFilePathList = new();
        while (section != null)
        {
            var hasContentDispositionHeader = ContentDispositionHeaderValue.TryParse(section.ContentDisposition,
                out var contentDisposition);
            if (hasContentDispositionHeader && contentDisposition!.DispositionType.Equals("form-data") &&
                !string.IsNullOrEmpty(contentDisposition.FileName.Value))
            {
                // 獲取文件后綴名
                var extension = Path.GetExtension(contentDisposition.FileName.Value);
                // 為文件重命名,防止文件重名
                var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + extension;
                // 文件保存的文件夾路徑
                var uploadPath = Path.Combine(_hostEnvironment.WebRootPath, "upload");
                if (!Directory.Exists(uploadPath))
                {
                    Directory.CreateDirectory(uploadPath);
                }
                var fileFullPath = Path.Combine(uploadPath, fileName);
                try
                {
                    using var targetStream = System.IO.File.Create(fileFullPath);
                    await section.Body.CopyToAsync(targetStream);
                    serverFilePathList.Add("/upload/" + fileName);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }
            section = await reader.ReadNextSectionAsync();
        }
        return Results<List<string>>.DataResult(serverFilePathList);
    }
}

5.使用postman工具測(cè)試

在這里插入圖片描述

6.查看本地上傳文件

在這里插入圖片描述

到此這篇關(guān)于.net core webapi 大文件上傳到wwwroot文件夾的文章就介紹到這了,更多相關(guān).net core webapi 大文件上傳內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# 接口的隱式與顯示實(shí)現(xiàn)及適應(yīng)場(chǎng)景

    C# 接口的隱式與顯示實(shí)現(xiàn)及適應(yīng)場(chǎng)景

    以前在用到接口時(shí),從來沒注意到接口分為隱式實(shí)現(xiàn)與顯示實(shí)現(xiàn)。昨天在瀏覽博客時(shí)看到相關(guān)內(nèi)容,現(xiàn)在根據(jù)自己的理解記錄一下,方便日后碰到的時(shí)候溫習(xí)溫習(xí),需要的朋友可以了解下
    2012-12-12
  • ?ASP.NET Core 模型驗(yàn)證過濾器的兩種實(shí)現(xiàn)方法

    ?ASP.NET Core 模型驗(yàn)證過濾器的兩種實(shí)現(xiàn)方法

    ?在.Net Core的時(shí)代中,框架會(huì)幫你自動(dòng)驗(yàn)證,本文主要介紹了?ASP.NET Core 模型驗(yàn)證過濾器的兩種實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • asp.net 處理F5刷新頁(yè)面重復(fù)提交頁(yè)面的一個(gè)思路

    asp.net 處理F5刷新頁(yè)面重復(fù)提交頁(yè)面的一個(gè)思路

    當(dāng)提交完一個(gè)頁(yè)面后,如果我們?cè)俅吸c(diǎn)擊F5刷新該頁(yè)面的話,會(huì)彈出一個(gè)提示,提示我們?nèi)绻^續(xù),則會(huì)重新發(fā)送提交我們剛才提交的內(nèi)容,要是類似付款或一次性的操作,我們不應(yīng)該這樣操作,否則會(huì)造成重復(fù)提交的問題。
    2010-02-02
  • .NET Core 實(shí)現(xiàn)定時(shí)抓取網(wǎng)站文章并發(fā)送到郵箱

    .NET Core 實(shí)現(xiàn)定時(shí)抓取網(wǎng)站文章并發(fā)送到郵箱

    本片文章通過實(shí)例講述.NET Core 實(shí)現(xiàn)定時(shí)抓取博客園首頁(yè)文章信息并發(fā)送到郵箱這個(gè)功能,對(duì)此有興趣的朋友參考學(xué)習(xí)下。
    2018-02-02
  • .NET微服務(wù)架構(gòu)CI/CD鏡像自動(dòng)分發(fā)

    .NET微服務(wù)架構(gòu)CI/CD鏡像自動(dòng)分發(fā)

    這篇文章介紹了.NET微服務(wù)架構(gòu)CI/CD實(shí)現(xiàn)鏡像自動(dòng)分發(fā)的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • ASP.NET開發(fā)中經(jīng)常用到10款工具軟件介紹

    ASP.NET開發(fā)中經(jīng)常用到10款工具軟件介紹

    從事.NET開發(fā)也好幾年了,工作過程中積累一些軟件工具,分享給大家,排名不分先后,希望對(duì)大家有所幫助。
    2016-04-04
  • ASP.NET實(shí)現(xiàn)個(gè)人信息注冊(cè)頁(yè)面并跳轉(zhuǎn)顯示

    ASP.NET實(shí)現(xiàn)個(gè)人信息注冊(cè)頁(yè)面并跳轉(zhuǎn)顯示

    這篇文章主要介紹了ASP.NET實(shí)現(xiàn)個(gè)人信息注冊(cè)頁(yè)面并跳轉(zhuǎn)顯示的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-12-12
  • .net中webconfig 詳解

    .net中webconfig 詳解

    這篇文章主要介紹了.net中webconfig 詳解,需要的朋友可以參考下
    2015-01-01
  • ASP.NET 根據(jù)漢字獲取漢字拼音的首字母(含多音字)

    ASP.NET 根據(jù)漢字獲取漢字拼音的首字母(含多音字)

    本文分享了一個(gè)函數(shù),這個(gè)函數(shù)可以根據(jù)漢字的字符串獲取其拼音的首字母,以便我們?cè)趯?shí)際開發(fā)中使用。
    2016-04-04
  • linq中的分組操作符

    linq中的分組操作符

    這篇文章介紹了linq中的分組操作符,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論

江山市| 江永县| 元朗区| 东台市| 海南省| 民勤县| 唐山市| 定州市| 越西县| 宁强县| 荣成市| 张家界市| 江陵县| 扶绥县| 德令哈市| 三都| 西盟| 梁山县| 济源市| 江陵县| 澄城县| 鄂托克旗| 柯坪县| 福海县| 浦江县| 抚州市| 礼泉县| 巴里| 海南省| 库尔勒市| 舒城县| 当阳市| 江川县| 长泰县| 长沙市| 大田县| 监利县| 乳山市| 昌宁县| 长葛市| 遂宁市|