asp.net core implémente la fonction de téléchargement de fichiers

高洛峰
Libérer: 2017-02-07 11:42:12
original
2087 Les gens l'ont consulté

L'exemple de cet article partage les fonctions de téléchargement de fichier unique et de téléchargement de fichiers multiples pour votre référence. Le contenu spécifique est le suivant

Téléchargement de fichier unique
Le téléchargement de fichiers est une fonction courante dans les applications Web. . Il est très simple de télécharger des fichiers dans asp.net core et de les enregistrer sur le serveur. Montrons comment télécharger des fichiers dans un projet ASP.NET Core.
Commencez par créer un projet principal asp.net, puis ajoutez un HomeController dans le fichier Controller, puis ajoutez un fichier de vue New.cshtml dans le dossier Accueil du dossier Views. Comme indiqué ci-dessous :

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

Ajoutez un UserViewModel.cs dans le dossier Model, le code est le suivant :

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; }
}
Copier après la connexion


Ajoutez ensuite un fichier de vue New.cshtml dans le dossier Views :

@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>
Copier après la connexion


Dans HomeController, ajoutez la méthode Action correspondant à la page :

[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));
}
Copier après la connexion


Téléchargement de fichiers multiples

Le téléchargement de fichiers multiples est similaire au téléchargement de fichiers uniques. Le ViewModel du formulaire utilise ICollection, puis le form Ajoutez simplement mulpitle (prend uniquement en charge H5).

Exemple de code source
Remarque : L'exemple de stockage de données utilise SQLite et la méthode Code First génère la base de données.

Pour plus d'articles liés au noyau asp.net implémentant la fonction de téléchargement de fichiers, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal