VUE、.NET多文件的上传、接收

编程入门 行业动态 更新时间:2024-10-09 06:22:41

VUE、.NET多文件的<a href=https://www.elefans.com/category/jswz/34/1771255.html style=上传、接收"/>

VUE、.NET多文件的上传、接收

.NET多文件接收

在.NET中文件的获取需要使用到IFormFile 接口,接口包括了几个方法和属性,我们需要使用到。

方法:

CopyTo(Stream)  将上传的文件的内容复制到流中。

OpenReadStream()  打开请求流以读取上传的文件。

属性:

ContentDisposition  获取已上传文件的原始 Content-Disposition 标头。

ContentType  获取已上传文件的原始 Content-Type 标头。

FileName  从 Content-Disposition 标头获取文件名。

Headers  获取已上传文件的标头字典。

Length  获取文件长度(以字节为单位)。

Name  从 Content-Disposition 标头获取表单字段名称。

首先我们需要创建一个类OeEntity。

public class OeEntity
{public List<IFormFile> Files { get; set; }
}

创建一个post请求接收一个OeEntity类。该请求将上传的文件全部保存到本地中,返回给前端保存的所有文件地址。

[HttpPost]
public object Cdd([FromForm] OeEntity m)
{if (m == null) return "上传内容错误";var files = m.Files;if (!files.Any()) return "没有检测到上传数据";var NewDate = DateTime.Now;try{var FilesPath = $"E:/warm/warm/public/File/{NewDate:yyyyMMdd}/";//创建储存文件if (!Directory.Exists(FilesPath)){Directory.CreateDirectory(FilesPath);}if (files != null){List<string> returnFile = new();foreach (var v in files){var fileExtension = Path.GetExtension(v.FileName);//获取文件格式,拓展名var saveFilesName = v.FileName.Substring(0, v.FileName.LastIndexOf('.')) + "_" + NewDate.ToString("HHmmss") + fileExtension;//文件名using (var fs = System.IO.File.Create(FilesPath + saveFilesName)){v.CopyTo(fs);fs.Flush();}var completeFilePath = Path.Combine(FilesPath, saveFilesName);returnFile.Add(completeFilePath);}return new { res = "上传成功", returnFile };}else{return new JsonResult(new { isSuccess = false, resultMsg = "上传失败,未检测上传的文件信息~" });}}catch (Exception ex){return new JsonResult(new { isSuccess = false, resultMsg = "文件保存失败,异常信息为:" + ex.Message });}
}

VUE多文件上传

window.event.preventDefault()避免刷新

我们需要使用FormData对象上传,将选择的文件内容循环压入到FormData中,需要注意请求头的配置。

methods: {onNewfile() {window.event.preventDefault()if (this.$refs.Newfile.files.length == 0) {console.log("请选择文件!!!")} else {let newFiles=new FormData();for(var i=0;i<this.$refs.Newfile.files.length;i++){newFiles.append('Files',this.$refs.Newfile.files[i])}PostBdd(newFiles).then(res=>{console.log(res)}).catch(err=>{console.log(err)})}}
}

axios配置(片段)

export function PostBdd(a) {return request({method: 'post',url: '/MyLogin/Cdd',headers: {// 'Content-Type': 'contentType:application/x-www-form-urlencoded''Content-Type': 'multipart/form-data'},data: a})
}

页面代码

<form id="onfiles"><input type="file" multiple="multiple" ref="Newfile" /><button @click="onNewfile">多文件上传</button>
</form>

更多推荐

VUE、.NET多文件的上传、接收

本文发布于:2023-12-03 11:46:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1654998.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:上传   文件   VUE   NET

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!