Asp.CAore往Vue前端传application/octet-stream类型文件流
题外话:当传递文件流时要确定文件流的类型,但也有例外就是application/octet-stream类型,主要是只用来下载的类型,这个类型简单理解意思就是通用类型类似 var 、object、array 这样什么都可以存的类型,我当前是excel表格也可以使用excel类型的流
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet“这个是Excel表格的类型
我目前进行的是由前端控制有需要前端代码的可以看我:https://www.cnblogs.com/liaote/p/15411629.html
首先是需要给定是HttpGet请求,post请求不能处理前端传过来的类型 ,而[FromQuery]简单的意思就是将前端传过来的blob类型绑定到到这里面
[HttpGet] public async Task<IActionResult> xxx([FromQuery]Model model)//需要加一个[FromQuery] // [FromHeader] 请求标头 // [FromQuery] 请求查询字符串参数 // [FromForm] 请求正文中的表单数据 // [FromBody] 请求正文 // [FromRoute] 当前请求中的路由 // [FromServices] 作为操作参数插入的请求服务
还有就是传递到前端的方式和写法
return File(xxx.ToArray(),"application/octet-stream",System.Web.HttpUtility.UrlDecode("下载.xlsx"));
需要注意的是
return File(stream, memi, Path); //stream是数据流根据自己需要进行调整,我的是直接转成了二进制 type[] //memi是文件流类型这个可以灵活万能钥匙还是指定类型文件 //path就是文件地址,这个地址我一般是没用的,因为让前端来控制可以下载到浏览器目录也可以指定目录少了局限性
需要vue+element前端的代码可以看:https://www.cnblogs.com/liaote/p/15411629.html
希望上述内容能帮到你