中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

ASP.NETCore文件文件如何上傳和保存到服務端-創新互聯

這篇文章主要介紹“ASP.NET Core文件文件如何上傳和保存到服務端”,在日常操作中,相信很多人在ASP.NET Core文件文件如何上傳和保存到服務端問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ASP.NET Core文件文件如何上傳和保存到服務端”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

專注于為中小企業提供成都做網站、成都網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業橫縣免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了近1000家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。

ASP.NET 是什么

ASP.NET 是開源,跨平臺,高性能,輕量級的 Web 應用構建框架,常用于通過 HTML、CSS、JavaScript 以及服務器腳本來構建網頁和網站。


前言:


在我們日常開發中,關于圖片,視頻,音頻,文檔等相關文件上傳并保存到服務端中是非常常見的一個功能,今天主要是把自己在開發中常用的兩種方式記錄下來方便一下直接使用,并且希望能夠幫助到有需要的同學!

一、配置ASP.NET Core中的靜態文件:


簡單概述:


在ASP.NET Core應用中靜態資源文件需要進行相應的配置才能夠提供給客戶端直接使用。

詳情描述請參考官方文檔:
/tupian/20230522/static-files Web 根目錄內的文件:


調用 Startup.Configure中的UseStaticFiles 方法配置:


public void Configure(IApplicationBuilder app)
{
  app.UseStaticFiles();
}

二、文件服務器和應用程序配置(IIS,Kestrel):


詳情描述,請參考官方文檔說明:
/tupian/20230522/file-uploads 設置每個多部分正文的長度限制。 分析超出此限制的窗體部分時,會引發 InvalidDataException。 默認值為 134,217,728 (128 MB)。 使用 MultipartBodyLengthLimit 中的 Startup.ConfigureServices 設置自定義此限制:

public void ConfigureServices(IServiceCollection services)
{
  services.Configure<FormOptions>(options =>
  {
    // Set the limit to 256 MB
    options.MultipartBodyLengthLimit = 268435456;
  });
}

Kestrel 較大請求正文大小:


對于 Kestrel 托管的應用,默認的較大請求正文大小為 30,000,000 個字節,約為 28.6 MB。 使用 MaxRequestBodySize Kestrel 服務器選項自定義限制:

public static IHostBuilder CreateHostBuilder(string[] args) =>
  Host.CreateDefaultBuilder(args)
    .ConfigureKestrel((context, options) =>
    {
      // Handle requests up to 50 MB
      options.Limits.MaxRequestBodySize = 52428800;
    })
    .ConfigureWebHostDefaults(webBuilder =>
    {
      webBuilder.UseStartup<Startup>();
    });

IIS 內容長度限制:


默認的請求限制 (maxAllowedContentLength) 為 30,000,000 字節,大約 28.6 MB。 請在 web.config 文件中自定義此限制:

<system.webServer>
 <security>
  <requestFiltering>
   <!-- Handle requests up to 50 MB -->
   <requestLimits maxAllowedContentLength="52428800" />
  </requestFiltering>
 </security>
</system.webServer>

三、單文件上傳:

using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;

namespace FileUploadManage.Controllers
{
  /// <summary>
  /// 圖片,視頻,音頻,文檔等相關文件通用上傳服務類
  /// </summary>
  public class FileUploadController : Controller
  {
    private static IHostingEnvironment _hostingEnvironment;

    public FileUploadController(IHostingEnvironment hostingEnvironment)
    {
      _hostingEnvironment = hostingEnvironment;
    }

    /// <summary>
    /// 單文件上傳
    /// </summary>
    /// <returns></returns>
    public JsonResult SingleFileUpload()
    {
      var formFile = Request.Form.Files[0];//獲取請求發送過來的文件
      var currentDate = DateTime.Now;
      var webRootPath = _hostingEnvironment.WebRootPath;//>>>相當于HttpContext.Current.Server.MapPath("") 

      try
      {
        var filePath = $"/UploadFile/{currentDate:yyyyMMdd}/";

        //創建每日存儲文件夾
        if (!Directory.Exists(webRootPath + filePath))
        {
          Directory.CreateDirectory(webRootPath + filePath);
        }

        if (formFile != null)
        {
          //文件后綴
          var fileExtension = Path.GetExtension(formFile.FileName);//獲取文件格式,拓展名

          //判斷文件大小
          var fileSize = formFile.Length;

          if (fileSize > 1024 * 1024 * 10) //10M TODO:(1mb=1024X1024b)
          {
            return new JsonResult(new { isSuccess = false, resultMsg = "上傳的文件不能大于10M" });
          }

          //保存的文件名稱(以名稱和保存時間命名)
          var saveName = formFile.FileName.Substring(0, formFile.FileName.LastIndexOf('.'))+"_"+currentDate.ToString("HHmmss")+ fileExtension;

          //文件保存
          using (var fs = System.IO.File.Create(webRootPath + filePath + saveName))
          {
            formFile.CopyTo(fs);
            fs.Flush();
          }

          //完整的文件路徑
          var completeFilePath = Path.Combine(filePath, saveName);

          return new JsonResult(new { isSuccess = true, returnMsg = "上傳成功", completeFilePath = completeFilePath });
        }
        else
        {
          return new JsonResult(new { isSuccess = false, resultMsg = "上傳失敗,未檢測上傳的文件信息~" });
        }

      }
      catch (Exception ex)
      {
        return new JsonResult(new { isSuccess = false, resultMsg = "文件保存失敗,異常信息為:" + ex.Message });
      }
    }

  }
}

四、多文件上傳:

using System;
using System.Collections.Generic;
using System.IO;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Internal;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore.Internal;

namespace FileUploadManage.Controllers
{
  /// <summary>
  /// 圖片,視頻,音頻,文檔等相關文件通用上傳服務類
  /// </summary>
  public class FileUploadController : Controller
  {
    private static IHostingEnvironment _hostingEnvironment;

    public FileUploadController(IHostingEnvironment hostingEnvironment)
    {
      _hostingEnvironment = hostingEnvironment;
    }

    /// <summary>
    /// 多文件上傳
    /// </summary>
    /// <param name="formCollection">表單集合值</param>
    /// <returns>服務器存儲的文件信息</returns>

    public JsonResult MultiFileUpload(IFormCollection formCollection)
    {
      var currentDate = DateTime.Now;
      var webRootPath = _hostingEnvironment.WebRootPath;//>>>相當于HttpContext.Current.Server.MapPath("") 
      var uploadFileRequestList = new List<UploadFileRequest>();
      try
      {
        //FormCollection轉化為FormFileCollection
        var files = (FormFileCollection)formCollection.Files;

        if (files.Any())
        {
          foreach (var file in files)
          {
            var uploadFileRequest = new UploadFileRequest();

            var filePath = $"/UploadFile/{currentDate:yyyyMMdd}/";

            //創建每日存儲文件夾
            if (!Directory.Exists(webRootPath + filePath))
            {
              Directory.CreateDirectory(webRootPath + filePath);
            }

            //文件后綴
            var fileExtension = Path.GetExtension(file.FileName);//獲取文件格式,拓展名

            //判斷文件大小
            var fileSize = file.Length;

            if (fileSize > 1024 * 1024 * 10) //10M TODO:(1mb=1024X1024b)
            {
              continue;
            }

            //保存的文件名稱(以名稱和保存時間命名)
            var saveName = file.FileName.Substring(0, file.FileName.LastIndexOf('.')) + "_" + currentDate.ToString("HHmmss") + fileExtension;

            //文件保存
            using (var fs = System.IO.File.Create(webRootPath + filePath + saveName))
            {
              file.CopyTo(fs);
              fs.Flush();
            }

            //完整的文件路徑
            var completeFilePath = Path.Combine(filePath, saveName);

            uploadFileRequestList.Add(new UploadFileRequest()
            {
              FileName = saveName,
              FilePath = completeFilePath
            });
          }
        }
        else
        {
          return new JsonResult(new { isSuccess = false, resultMsg = "上傳失敗,未檢測上傳的文件信息~" });
        }
      }
      catch (Exception ex)
      {
        return new JsonResult(new { isSuccess = false, resultMsg = "文件保存失敗,異常信息為:" + ex.Message });
      }

      if (uploadFileRequestList.Any())
      {
        return new JsonResult(new { isSuccess = true, returnMsg = "上傳成功", filePathArray = uploadFileRequestList });
      }
      else
      {
        return new JsonResult(new { isSuccess = false, resultMsg = "網絡打瞌睡了,文件保存失敗" });
      }
    }

  }

  /// <summary>
  /// 對文件上傳響應模型
  /// </summary>
  public class UploadFileRequest
  {
    /// <summary>
    /// 文件名稱
    /// </summary>
    public string FileName { get; set; }

    /// <summary>
    /// 文件路徑
    /// </summary>
    public string FilePath { get; set; }
  }
}

到此,關于“ASP.NET Core文件文件如何上傳和保存到服務端”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯網站,小編會繼續努力為大家帶來更多實用的文章!

本文題目:ASP.NETCore文件文件如何上傳和保存到服務端-創新互聯
當前網址:http://m.2m8n56k.cn/article42/dipshc.html

成都網站建設公司_創新互聯,為您提供微信小程序電子商務小程序開發做網站移動網站建設品牌網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司
主站蜘蛛池模板: 欧美肥婆videoxxx| 日本污网站 | 久操免费在线视频 | 免费嗨片 | 古代级a毛片在线 | 老司机免费福利午夜入口ae58 | 成年人视频在线免费 | 三级色网 | 亚洲欧美视频在线播放 | 男女无遮掩做爰免费视频软件 | 精品国产一区二区三区2021 | 亚洲成在人线免费视频 | 在线播放国产一区二区三区 | 国产精选莉莉私人影院 | 美女视频永久黄网站免费观看韩国 | 一级日韩一级欧美 | 国产一区二区三区在线免费观看 | 国产精品9 | 亚洲人成亚洲人成在线观看 | 最新国产三级久久 | 黄视频在线免费看 | 91理论片午午伦夜理片久久 | 亚洲国产精品不卡毛片a在线 | 久久在线播放 | 夜间福利网站 | 在线视频一二三区 | 成人精品久久 | 国产边打电话边做对白刺激 | 一本色道久久88加勒比—综合 | 成人免费高清视频网址 | 久久国产精品免费观看 | a级毛片在线播放 | a级毛片在线视频免费观看 a级免费 | 成人国产网站v片免费观看 成人国产午夜在线视频 | 国产手机免费视频 | 欧美亚洲一区二区三区在线 | 成人久久视频 | 成年午夜性视频免费播放 | 亚洲精品久久久成人 | 日韩 亚洲 制服 欧美 综合 | 久久频这里精品香蕉久久 |