您的位置:首页 > 财经 > 金融 > behance设计官网网址_最近时政新闻10条_网络营销软件站_seo如何去做优化

behance设计官网网址_最近时政新闻10条_网络营销软件站_seo如何去做优化

2024/11/16 14:21:43 来源:https://blog.csdn.net/qq1719448063/article/details/143212466  浏览:    关键词:behance设计官网网址_最近时政新闻10条_网络营销软件站_seo如何去做优化
behance设计官网网址_最近时政新闻10条_网络营销软件站_seo如何去做优化

期望

后端期望前端给的传参为 formData 形式, 同时文件的数据类型为File 形式.

解决过程

将文件处理为 File 格式

uview 中的 upload 组件点击上传之后不是标准的 File 形式,点击上传单个文件之后的控制台信息如下:

[{"url": "blob:http://localhost:8081/c16e50ca-767b-4de1-93b4-0446656c3e4d","progress": 0,"error": false,"file": {"name": "440k.jpg","lastModified": 1658970439074,"lastModifiedDate": {},"webkitRelativePath": "","size": 449462,"type": "image/jpeg"}}
]

故需对 file 内容进行二次加工. 将生成的 blob url 地址处理成 File 文件流形式.
代码如下:

// 上传图片回调
onChooseOne(lists) {console.log(lists)// 将获取到的信息放入上传列表中this.pushFileList('fileListOne', lists)
},
// 公共添加文件信息
async pushFileList(fileList, info) {this[fileList] = []info.forEach(async item => {// 加载blob文件const imgBlob = await fetch(item.url).then(r => r.blob())// 循环生成file文件流this[fileList].push({url: item.url,info: new File([imgBlob], item.file.name, {type: item.file.type})})})
},

最后处理完成之后形式如下:

uniapp uview 上传图片,数据以formData + File 形式传输

这时要传输的信息已经准备好

将数据其处理成 formData 形式
// 将数据处理成formData形式
addForm(params) {// 将json数据处理为form格式let newFile = new FormData();let keys = Object.keys(params);let values = Object.values(params);values.forEach((item, index) => {if (typeof item === 'object' && item) {item.forEach((item1) => {newFile.append(`${keys[index]}`, item1);});} else {newFile.append(`${keys[index]}`, item);}});return newFile;
},

同时需要更改 api 请求方式. 因为 uniapp 的 uni.request 默认不支持 formData 形式数据, 官网文档如下:

uniapp uview 上传图片,数据以formData + File 形式传输

所以我们退而求其次, 直接安装 axios 后, 直接使用 axios 进行请求. 我们需要为请求头增加 formData 请求类型, 最后封装后的 api 请求如下:

const url = 'xxx你的请求地址'
const config = {headers:{'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryXkII0NmP1jsvIgZC'}
};
return new Promise((resolve, reject) => {axios.post(url, data, config).then((res) => {resolve(res)}).catch((err) => {reject(err)})
})

结果

最后处理之后的请求数据为表单数据, 接口对接完毕:

uniapp uview 上传图片,数据以formData + File 形式传输

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com