راه حل 5 را کامل مطالعه کنید.
۴ سال و ۴ ماه قبل، پنجشنبه ۲۵ اردیبهشت ۱۳۹۹، ساعت ۱۶:۵۴
این روشی هست که در Angular هم برای cache busting مورد استفاده قرار میگیرد. به همین جهت فایلهای تغییر یافته، دارای هش جدیدی خواهند بود که به عنوان یک فایل js جدید، حتما مجددا توسط مرورگر از سایت دریافت خواهند شد و کش نمیشوند.
<form method="post" asp-action="UploadFiles" asp-controller="Home" enctype="multipart/form-data"> <input type="file" name="files" webkitdirectory /> <input type="submit" value="Upload" /> </form>
using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace UploadFolderASPNETCore.Controllers { public class HomeController : Controller { private readonly IWebHostEnvironment _environment; private const int MaxBufferSize = 0x10000; public HomeController(IWebHostEnvironment environment) { _environment = environment; } public IActionResult Index() { return View(); } [HttpPost("[action]")] public async Task<IActionResult> UploadFiles(IList<IFormFile> files) { var uploadsRootFolder = Path.Combine(_environment.WebRootPath, "uploads"); CreateDir(uploadsRootFolder); foreach (var file in files) { var dirPath = Path.GetDirectoryName(file.FileName); CreateDir(Path.Combine(uploadsRootFolder, dirPath)); var filePath = Path.Combine(uploadsRootFolder, file.FileName); using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None, MaxBufferSize, useAsync: true )) { await file.CopyToAsync(fileStream); } } return RedirectToAction("Index"); } private void CreateDir(string path) { if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } } } }
{"$.language":["The JSON value could not be converted to DNTCaptcha.Core.Providers.Language. Path: $.language | LineNumber: 0 | BytePositionInLine: 99."]}
if (model == null || !ModelState.IsValid) { return BadRequest(ModelState); }
services.AddControllers().AddJsonOptions(opt => { opt.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); });