当前位置:首页 > 话题广场 > 攻略专题 > 游戏问答

.net如何实现文件上传?我来告诉你答案基础教程:上传/下载ASP.NET Core 2.0中的文件

问题 如何上传和下载ASP.NET Core MVC中的文件。 解 在一个空的项目中,更新 Startup 类以添加MVC的服务和中间件。 达到当天最大量API KEY 超过次数限制
  1. publicvoid ConfigureServices(

  2. IServiceCollection services)

  3. {

  4. ;IfileProvider>(

  5. new PhysicalFileProvider(

  6. Pa(), "wwwroot")));

  7. ();

  8. }

  9. publicvoid Configure(

  10. IApplicationBuilder app,

  11. IHostingEnvironment env)

  12. {

  13. a(routes =>

  14. {

  15. rou(

  16. name: "default",

  17. template: "{controller=Home}/{action=Index}/{id?}");

  18. });

  19. }

添加一个控制器和操作方法来上传和下载文件。

  1. [HttpPost]

  2. public async Task<IActionResult> UploadFile(IFormFile file)

  3. {

  4. if (file == null || == 0)

  5. return Content("file not selected");

  6. var path = Pa(

  7. Direc(), "wwwroot",

  8. ());

  9. using (var stream = new FileStream(path, FileMode.Create))

  10. {

  11. await (stream);

  12. }

  13. return RedirectToAction("Files");

  14. }

  15. public async Task<IActionResult> Download(string filename)

  16. {

  17. if (filename == null)

  18. return Content("filename not present");

  19. var path = Pa(

  20. Direc(),

  21. "wwwroot", filename);

  22. var memory = new MemoryStream();

  23. using (var stream = new FileStream(path, FileMode.Open))

  24. {

  25. await (memory);

  26. }

  27. memory.Position = 0;

  28. return File(memory, GetContentType(path), Pa(path));

  29. }

用HTML表单添加一个Razor页面来上传文件。

  1. <form asp-controller="Home" asp-action="UploadFile" method="post"

  2. enctype="multipart/form-data">

  3. <input type="file" name="file" />

  4. <button type="submit">Upload File</button>

  5. </form>

讨论上传

ASP.NET Core MVC 模型绑定 提供了 IFormFile 接口来上传一个或多个文件。HTML表单必须将 编码 类型设置为 multipart / form-data, 并将type属性设置为 file的 输入 元素 。

你也可以通过接收一个IFormFile in action方法的列表来上传多个文件, 并设置 具有多个 属性的input元素 。

  1. // In Controller

  2. [HttpPost]

  3. public async Task<IActionResult> UploadFiles(List<IFormFile> files)

  4. // In HTML

  5. <input type="file" name="files" multiple />

您也可以将 IFormFile 作为操作方法接收的模型的属性。

  1. publicclass FileInputModel

  2. {

  3. public IFormFile FileToUpload { get; set; }

  4. }

  5. [HttpPost]

  6. public async Task<IActionResult> UploadFileViaModel(FileInputModel model)

注意

输入元素上的名称必须与模型绑定工作的操作参数名称(或模型属性名称)匹配。这与简单和复杂类型的模型绑定没有区别。

下载

Action方法需要返回 FileResult 与 流, byte [] 或文件的虚拟路径。您还需要知道 正在下载的文件的 内容类型。这是一个示例(快速/脏)实用程序的方法。

  1. private string GetContentType(string path)

  2. {

  3. var types = GetMimeTypes();

  4. var ext = Pa(path).ToLowerInvariant();

  5. return types[ext];

  6. }

  7. private Dictionary<string, string> GetMimeTypes()

  8. {

  9. returnnew Dictionary<string, string>

  10. {

  11. {".txt", "text/plain"},

  12. {".pdf", "application/pdf"},

  13. {".doc", "application;},

  14. {".docx", "application;},

  15. {".xls", "application;},

  16. {".xlsx", "application

  17. o;},

  18. {".png", "image/png"},

  19. {".jpg", "image/jpeg"},

  20. {".jpeg", "image/jpeg"},

  21. {".gif", "image/gif"},

  22. {".csv", "text/csv"}

  23. };

  24. }

1.《.net如何实现文件上传?我来告诉你答案基础教程:上传/下载ASP.NET Core 2.0中的文件》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《.net如何实现文件上传?我来告诉你答案基础教程:上传/下载ASP.NET Core 2.0中的文件》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/2143008.html

上一篇

0度冰箱有什么?总结很全面速看!恶心臭味让人直呼受不了 十款净味冰箱让食材无所“味”惧

下一篇

关于0628代表什么意思,你需要知道这些速读泸州0628纳福港城大道30日通车 主城区到泸县—30分钟!

关于.net如何实现文件上传,你需要知道这些.net多张图片上传并且预览

关于.net如何实现文件上传,你需要知道这些.net多张图片上传并且预览

.net如何实现文件上传相关介绍,首先,向html页面添加“添加”按钮和单击事件APP()。 Input type=&#39;button&#39; value=&#39;添加图片&#39; onclick=&#39; app();&...

.net如何实现文件上传?我来告诉你答案.Net Core文件上传

.net如何实现文件上传?我来告诉你答案.Net Core文件上传

.net如何实现文件上传相关介绍,.Net Core的文件上载使用表单上载方法,在前端界面上,form使用以下方法: form id=&#39; form &#39; method=&#39; post &#39; enctype=&...