Maison  >  Article  >  développement back-end  >  asp.net core implémente la fonction de téléchargement de fichiers

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

高洛峰
高洛峰original
2017-02-07 11:42:122085parcourir

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; }
}


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>


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));
}


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 ICollection6e1c43e97cfd097c17aa357221607968, puis le formdcdf72c1040113f189af0d96ec12479f 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 !

Déclaration:
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