当前位置:Gxlcms > asp.net > asp.net core mvc实现文件上传实例

asp.net core mvc实现文件上传实例

时间:2021-07-01 10:21:17 帮助过:9人阅读

工作用到文件上传的功能,在这个分享下 ~~

Controller:        

  1. public class PictureController : Controller
  2. {
  3. private IHostingEnvironment hostingEnv;
  4. public PictureController(IHostingEnvironment env)
  5. {
  6. this.hostingEnv = env;
  7. }
  8. // GET: /<controller>/
  9. public IActionResult Index()
  10. {
  11. return View();
  12. }
  13. public IActionResult UploadFiles()
  14. {
  15. return View();
  16. }
  17. [HttpPost]
  18. public IActionResult UploadFiles(IList<IFormFile> files)
  19. {
  20. long size = 0;
  21. foreach (var file in files)
  22. {
  23. var filename = ContentDispositionHeaderValue
  24. .Parse(file.ContentDisposition)
  25. .FileName
  26. .Trim('"');
  27. //这个hostingEnv.WebRootPath就是要存的地址可以改下
  28. filename = hostingEnv.WebRootPath + $@"\{filename}";
  29. size += file.Length;
  30. using (FileStream fs = System.IO.File.Create(filename))
  31. {
  32. file.CopyTo(fs);
  33. fs.Flush();
  34. }
  35. }
  36. ViewBag.Message = $"{files.Count} file(s) /{ size}bytes uploaded successfully!";
  37. return View();
  38. }
  39. }

view:

  1. <form asp-action="UploadFiles"
  2. asp-controller="Picture"
  3. method="post"
  4. enctype="multipart/form-data">
  5. <input type="file" name="files" multiple />
  6. <input type="submit" value="Upload Selected Files" />
  7. </form>

文件是上传到wwwroot目录文件下的,这我也看不太懂还在学习,欢迎大家交流~~

----------------------------------------------------------------------------------------------------------

下面是jquery ajax方式上传的

post方式的action的z参数没用 因为只有一个post方式的会404错误所以又加了一个get的action

Controller: 

  1. public IActionResult UploadFilesAjax()
  2. {
  3. return View();
  4. }
  5. [HttpPost]
  6. public IActionResult UploadFilesAjax(string z)
  7. {
  8. long size = 0;
  9. var files = Request.Form.Files;
  10. foreach (var file in files)
  11. {
  12. var filename = ContentDispositionHeaderValue
  13. .Parse(file.ContentDisposition)
  14. .FileName
  15. .Trim('"');
  16. filename = @"C:\Users\lg.HL\Desktop" + $@"\{filename}";
  17. size += file.Length;
  18. using (FileStream fs = System.IO.File.Create(filename))
  19. {
  20. file.CopyTo(fs);
  21. fs.Flush();
  22. }
  23. }
  24. string message = $"{files.Count} file(s) / { size}bytes uploaded successfully!";
  25. return Json(message);
  26. }

view

  1. <form method="post" enctype="multipart/form-data">
  2. <input type="file" id="files"
  3. name="files" multiple />
  4. <input type="button"
  5. id="upload"
  6. value="Upload Selected Files" />
  7. </form>

jquery

  1. <script type="text/javascript">
  2. $(document).ready(function () {
  3. $("#upload").click(function (evt) {
  4. var fileUpload = $("#files").get(0);
  5. var files = fileUpload.files;
  6. var data = new FormData();
  7. for (var i = 0; i < files.length ; i++) {
  8. data.append(files[i].name, files[i]);
  9. }
  10. $.ajax({
  11. type: "POST",
  12. url: "/Picture/UploadFilesAjax",
  13. contentType: false,
  14. processData: false,
  15. data: data,
  16. success: function (message) {
  17. alert(message);
  18. },
  19. error: function () {
  20. alert("There was error uploading files!");
  21. }
  22. });
  23. });
  24. });
  25. </script>

欢迎大家交流~ 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

人气教程排行