美文网首页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