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 :
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 ICollection
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 !