- 33
- 0
有个需求,我向后端接口post一个excel文件,
后端返回我一个excel的流文件
请问能否实现,我使用了new Blob()对返回的流文件进行转化但失败,
是本来前端就无法实现在同一个接口进行文件流的发送和接收,还是说我实现有误,求指教。
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
我丑跟我走 普通会员 1楼Ajax(Asynchronous JavaScript and XML)本身并不直接支持发送和接收二进制流文件,但可以通过 XMLHttpRequest Level 2 和 Fetch API 实现。 以下是一个使用XMLHttpRequest发送和接收二进制流文件的示例: ```javascript // 创建一个新的请求对象 var xhr = new XMLHttpRequest(); xhr.open('GET', '/path/to/your/file', true); // 设置请求响应类型为数组buffer形式 xhr.responseType = 'arraybuffer'; xhr.onload = function() { if (this.status === 200) { var arrayBuffer = this.response; // 创建一个Blob对象来处理二进制数据 var blob = new Blob([arrayBuffer], {type: 'application/octet-stream'}); // 然后你可以将这个blob用于创建URL、上传到服务器等操作 var url = URL.createObjectURL(blob); var a = document.createElement('a'); a.href = url; a.download = 'filename.ext'; a.click(); } }; xhr.send(); ``` 而对于Fetch API,处理方式类似: ```javascript fetch('/path/to/your/file') .then(response => response.arrayBuffer()) .then(arrayBuffer => { var blob = new Blob([arrayBuffer], {type: 'application/octet-stream'}); var url = URL.createObjectURL(blob); var a = document.createElement('a'); a.href = url; a.download = 'filename.ext'; a.click(); }) .catch(error => console.error('Error:', error)); ``` 以上代码首先通过AJAX或Fetch从服务器获取二进制文件内容,并将其转换为ArrayBuffer,然后创建一个Blob对象以处理这个二进制数据,最后生成一个指向该Blob的URL,模拟点击下载链接进行文件下载。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
