美文网首页JavaScript
记录:ios系统http请求的一些不同

记录:ios系统http请求的一些不同

作者: 剑指流云 | 来源:发表于2023-04-10 15:02 被阅读0次

最近在做小程序文件下载的的时候遇见的一些问题,电脑端和安卓端均能够执行成功,ios端出现了错误,仔细排查后发现了问题

http响应头问题:当Content-Type为APPLICATION/OCTET-STREAM时,需要从Content-Disposition中获取文件名称信息

  • 安卓,windows中Content-Disposition的值为字符串
  • ios 中 Content-Disposition的值为数组
// 兼容型写法
if (res.header['Content-Type'] == "APPLICATION/OCTET-STREAM") {
    let fileInfo = res.header['Content-Disposition'] || ''
        // 针对ios端做特殊处理
    if (fileInfo instanceof Array) {
        fileInfo = fileInfo[0] || ''
    }
    if (!fileInfo) {
        uni.hideLoading()
        uni.showToast({
            icon: "error",
            title: "保存失败"
        })
        reject(err)
    }
    const data = {
        data: {
            data: res.tempFilePath,
            'Content-Disposition': res.header[
                'Content-Disposition'],
            filename: new Date().getTime() + decodeURI(fileInfo.split(
                "filename=")[1])
        }
    }
    return resolve(data);
}

当文件名称相同时,fs.saveFile()可能出现文件保存失败的情况,解决方法是使用时间戳拼接文件名,减少文件名相同的概率

相关文章

网友评论

    本文标题:记录:ios系统http请求的一些不同

    本文链接:https://www.haomeiwen.com/subject/rzfwddtx.html