Der asp.net-Kern implementiert die Funktion zum Hochladen von Dateien

高洛峰
Freigeben: 2017-02-07 11:42:12
Original
2087 Leute haben es durchsucht

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:

asp.net core实现文件上传功能

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; }
}
Nach dem Login kopieren


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>
Nach dem Login kopieren


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));
}
Nach dem Login kopieren


Mehrere Dateien hochladen

Das Hochladen mehrerer Dateien ähnelt dem Hochladen einzelner Dateien form 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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage