这个是我的方法
然后打印出来是这样
使用Ajax请求接口
使用 比较原始的 XMLHttpRequest 倒是可以实现,但是Ajax是基于 XMLHttpRequest 的吧,Ajax有没有办法实现
后台返回二进制流,比如返回的是图片的二进制流,使用 XMLHttpRequest 可以通过设置 ResponseType 为具体的返回类型(blob),然后通过a标签的download去下载,Ajax 的话使用 xhrFields ,这xhrFields中设置{ responseType: "blob" }
return File(buffer, "application/octet-stream","xxxx.jpg");
前端用 window.open 就可以
window.open 的参数是需要一个url吧,我后台返回的是文件流,我不知道我的文件流返回的是否正确,因为它现在是乱码,想了解文件流的处理方法
如果想下载,你得告诉浏览器这是个文件,具体看楼上。。。
通过 Blob和a标签可以下载一个文件下来,但是这个文件是错误的、打不开的,而且文件大小和原本的文件页不符
这个是原来的文件
这个是通过 后台返回文件流 下载下来的文件
@爱吃鲸的虾: 你现在想要干什么?下载?
@顾晓北: 对,把图片下载下来
@爱吃鲸的虾: 既然是下载,只要按楼上说的,你告诉浏览器这是文件,然后window.open就行了,建议是根据参数返回不同的文件,然后直接window.open
既然叫二进制~~跟码有什么关系。
看起来你是说图片chrome没显示,那么头是否正确;或者“另存”后其他先确定是否文件是否一致。
不一致再说不一致的问题。
使用 XMLHttpRequest 并把返回类似设置为blob,返回回来的数据是正确的,并且下载的图片也是正确的,我现在的问题是 如何使用Ajax如何把返回二进制流文件下载下来
楼主,这个问题最后如何解决了?