Heim > Artikel > Backend-Entwicklung > Der asp.net-Kern implementiert die Funktion zum Hochladen von Dateien
Das Beispiel in diesem Artikel teilt die Funktionen des Hochladens einzelner Dateien und mehrerer Dateien als Referenz. Der spezifische Inhalt ist wie folgt:
Hochladen einzelner Dateien
Das Hochladen von Dateien ist eine häufige Funktion in Webanwendungen . . Es ist sehr einfach, Dateien in asp.net Core hochzuladen und auf dem Server zu speichern. Lassen Sie uns demonstrieren, wie Sie Dateien in ein ASP.NET Core-Projekt hochladen.
Erstellen Sie zunächst ein asp.net-Kernprojekt, fügen Sie dann einen HomeController zur Controller-Datei hinzu und fügen Sie dann eine New.cshtml-Ansichtsdatei im Home-Ordner des Views-Ordners hinzu. Wie unten gezeigt:
Fügen Sie eine UserViewModel.cs im Modellordner hinzu. Der Code lautet wie folgt:
public class UserViewModel { [Required] [Display(Name = "姓名")] public string Name { get; set; } [Required] [Display(Name = "身份证")] [RegularExpression(@"^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$", ErrorMessage = "身份证号不合法")] public string IdNum { get; set; } public string IdCardImgName { get; set; } [Required] [Display(Name = "身份证附件")] [FileExtensions(Extensions = ".jpg,.png", ErrorMessage = "图片格式错误")] public IFormFile IdCardImg { get; set; } }
Fügen Sie dann eine New.cshtml-Ansichtsdatei im Ordner „Ansichten“ hinzu:
@model UserViewModel <form asp-controller="Home" role="form" asp-action="New" enctype="multipart/form-data" method="post"> <div class="form-group"> <label asp-for="Name"></label> <input type="text" class="form-control" asp-for="Name" /> </div> <div class="form-group"> <label asp-for="IdNum"></label> <input type="text" class="form-control" asp-for="IdNum" /> </div> <div class="form-group"> <label asp-for="IdCardImg"></label> <input type="file" asp-for="IdCardImg" /> <p class="help-block">上传。</p> </div> <button type="submit" class="btn btn-default">提交</button> </form>
Fügen Sie in HomeController die Aktionsmethode hinzu, die der Seite entspricht:
[HttpPost] public IActionResult New([FromServices]IHostingEnvironment env, [FromServices]AppDbContext dbContext, UserViewModel user) { var fileName = Path.Combine("upload", DateTime.Now.ToString("MMddHHmmss") + ".jpg"); using (var stream = new FileStream(Path.Combine(env.WebRootPath, fileName), FileMode.CreateNew)) { user.IdCardImg.CopyTo(stream); } var users = dbContext.Set<User>(); var dbUser = new User() { Name = user.Name, IdCardNum = user.IdNum, IdCardImgName = fileName }; users.Add(dbUser); dbContext.SaveChanges(); return RedirectToAction(nameof(Index)); }
Mehrere Dateien hochladen
Das Hochladen mehrerer Dateien ähnelt dem Hochladen einzelner Dateien formdcdf72c1040113f189af0d96ec12479f Fügen Sie einfach mulpitle hinzu (unterstützt nur H5).
Beispielquellcode
Hinweis: Der Beispieldatenspeicher verwendet SQLite und die Code First-Methode wird zum Generieren der Datenbank verwendet.
Weitere Artikel zur Implementierung der Datei-Upload-Funktion im asp.net-Kern finden Sie auf der chinesischen PHP-Website!