.Net Core文件上传下载

原创 Laughing  2017-07-13 12:25  阅读 165 次 评论 0 条

.net core上传文件还是比较简单的,可以通过IFileResult直接返回一个对象,也可以通过ajax方法进行返回,跟直接在MVC下上传或者下载文件的方法基本一样。

Controller代码

  1. using System;  
  2. using System.IO;  
  3. using Microsoft.AspNetCore.Hosting;  
  4. using Microsoft.AspNetCore.Hosting.Internal;  
  5. using Microsoft.AspNetCore.Mvc;  
  6. using Microsoft.AspNetCore.Http;  
  7. using System.Collections;  
  8. using System.Collections.Generic;  
  9.   
  10. namespace NetCoreSimpleDemo.Controllers  
  11. {  
  12.     public class FileController : Controller  
  13.     {  
  14.         private IHostingEnvironment _env;  
  15.   
  16.         public FileController(IHostingEnvironment env)  
  17.         {  
  18.             _env = env;  
  19.         }  
  20.         // GET  
  21.         public FileResult DownLoad1()  
  22.         {  
  23.             string filePath = _env.ContentRootPath + "/wwwroot/Files/Demo.txt";  
  24.             FileStream fs = new FileStream(filePath, FileMode.Open);  
  25.             FileResult result = new FileStreamResult(fs, "application/octet-stream");  
  26.             result.FileDownloadName = "Demo.txt";  
  27.             return result;  
  28.         }  
  29.   
  30.         public IActionResult DownLoad2()  
  31.         {  
  32.             string filePath = _env.ContentRootPath + "/wwwroot/Files/Demo.json";  
  33.             FileStream fs = new FileStream(filePath, FileMode.Open);  
  34.             byte[] contents = new byte[fs.Length];  
  35.             fs.Read(contents, 0, contents.Length);  
  36.             return File(fs, "text/plain""Demo.json");  
  37.         }  
  38.   
  39.         //下载图片  
  40.         public IActionResult DownLoadPic()  
  41.         {  
  42.             var path = _env.ContentRootPath + "/wwwroot/images/1.jpg";  
  43.             var imageEx = Path.GetExtension(path);  
  44.             var physicalFile = new PhysicalFileResult(path, "image/jpg");  
  45.             physicalFile.FileDownloadName = DateTime.Now.ToString("yyyyMMdd") + imageEx;  
  46.             return physicalFile;  
  47.         }  
  48.   
  49.         [HttpPost]  
  50.         public string UploadFile(IList<IFormFile> files)  
  51.         {  
  52.             var files1 = files;  
  53.             return "true";  
  54.         }  
  55.   
  56.         public IActionResult UploadAjax()  
  57.         {  
  58.             var files = Request.Form.Files;  
  59.             foreach (var file in files)  
  60.             {  
  61.                 string fileName = Guid.NewGuid().ToString();  
  62.                 using (FileStream fs = new FileStream(_env.ContentRootPath + "/wwwroot/Files/" + fileName, FileMode.CreateNew)){  
  63.                     file.CopyTo(fs);  
  64.                     fs.Flush();  
  65.                 }  
  66.             }  
  67.             return View();  
  68.         }  
  69.   
  70.         public IActionResult DownLoadFile()  
  71.         {  
  72.             ViewData["Title"] = "测试下载";  
  73.             return View();  
  74.         }  
  75.   
  76.     }  
  77. }  

View代码

  1. @section Scripts{  
  2.     <script>  
  3.         $(function () {  
  4.             $("#submitFiles").click(function () {  
  5.                 var fileUpload = $("#fileupload").get(0);  
  6.                 var files = fileUpload.files;  
  7.                 var data = new FormData();  
  8.                 for (var i = 0; i < files.length; i++) {  
  9.                     data.append(files[i].name, files[i]);  
  10.                 }  
  11.                 $.ajax({  
  12.                     url: "/File/UploadAjax",  
  13.                     type: "POST",  
  14.                     data: data,  
  15.                     mimeType: "multipart/form-data",  
  16.                     contentType: false,  
  17.                     processData: false,  
  18.                     success: function (obj) {  
  19.   
  20.                     }  
  21.                 });  
  22.             });  
  23.               
  24.         });  
  25.     </script>  
  26. }  
  27. <form id="formSubmit" method="post" enctype="multipart/form-data">  
  28.     <div style="margin-top: 20px;">  
  29.         <a asp-action="DownLoad1" asp-controller="File" asp-area="">方式一下载</a>  
  30.         <a asp-action="DownLoad2" asp-controller="File" asp-area="">方式二下载</a>  
  31.         <a asp-action="DownLoadPic" asp-area="" asp-controller="File" class="alert-link">下载图片</a>  
  32.         <input id="fileupload" type="file" />  
  33.         <input type="button" id="submitFiles" class="btn btn-default" value="上传"/>  
  34.     </div>  
  35. </form>  
本文地址:https://www.lisen.me/net-core-file-upload-download.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情