200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > ASP.Net Core创建MVC项目上传文件(缓冲方式)

ASP.Net Core创建MVC项目上传文件(缓冲方式)

时间:2019-03-07 17:10:22

相关推荐

ASP.Net Core创建MVC项目上传文件(缓冲方式)

学习了普通webapp中上传文件,再看看从MVC项目中通过缓冲方式上传文件到物理文件夹。这两者的区别主要是webapp通过模型绑定的方式传递IFormFile对象,而mvc通过控制器和action传递IFormFile对象,后续对IFromFile对象的处理其实差不多。

运行下列命令创建mvc项目。

dotnet new mvc -o UploadFileByMVCcode -r UploadFileByMVC

直接在默认的HomeController类中增加下列两个函数用于上传多个文件和单个文件,代码参照参考文献1-2.

[HttpPost]public async Task<IActionResult> UploadMultiFile(List<IFormFile> files){long size = files.Sum(f => f.Length);foreach (var formFile in files){var filePath = bine(_targetFilePath, formFile.FileName);if (formFile.Length > 0){using (var stream = new FileStream(filePath, FileMode.Create)){await formFile.CopyToAsync(stream);}}}return Ok(new {count = files.Count, size });}[HttpPost]public async Task<IActionResult> UploadSingleFile(IFormFile file){var filePath = bine(_targetFilePath, file.FileName);if (file.Length > 0){using (var stream = new FileStream(filePath, FileMode.Create)){await file.CopyToAsync(stream);}}return Ok(new {count = 1 ,file.Length });}

页面就是将之前上传单个文件和多个文件的表单混在了一起,代码和截图如下:

<p>多文件上传:</p><form method="post" enctype="multipart/form-data" asp-controller="Home" asp-action="UploadMultiFile"><div><input type="file" name="files" multiple /></div><div><input type="submit" value="Upload" /></div></form><p>单文件上传:</p><form method="post" enctype="multipart/form-data" asp-controller="Home" asp-action="UploadSingleFile"><div><input type="file" name="file" /></div><div><input type="submit" value="Upload" /></div></form>

程序比较简单,可以正常运行,微软示例中还包括列出缓冲文件夹的文件清单的功能,后面准备把这块代码剥处来放在本文的项目中。

参考文献:

[1]/tie123000/article/details/96868206

[2]/weixin_41960204/article/details/107575845?spm=1001.2101.3001.6650.14&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-14-107575845-blog-96868206.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-14-107575845-blog-96868206.pc_relevant_paycolumn_v3

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。