描述:有一个sftp服务器界面下载后的文件,存储在浏览器,然后进行文件的展示数据预览。用户进行相关操作,确认无误后,直接提交给后台。流程:云服务器下载 ——> 页面预览——>确认后发送后台
难点:云服务下载的接口也是后台写的,返回的是二进制流数据。不符合确认后返给后台的数据格式。正常的文件上传我们都是利用组件或者原生标签<input type="file" />,然后每个文件对应一个对象,传给后台的是对象中的 raw 属性的内容。
解决: 把云服务下载的二进制流文件转换成新的文件格式,具体操作两行代码搞定
//res.data 是后台返回的二进制流 name 是给文件启的新名字 type是文件类型
const dataFile = new window.File([res.data], name, {type})
// fileObj 对象中的 raw 就是我们传给后台的数据格式 和利用组件或者 <input type="file" />上传的效果是一样
const fileObj = {uid:date.getTime(), name, raw: dataFile }
最后把 fileObj的raw用FormData传给后台即可。