爱吃鱼的靖哥哥
爱吃鱼的靖哥哥
  • 发布:2020-05-09 17:32
  • 更新:2020-07-23 15:46
  • 阅读:899

【报Bug】uni.canvasToTempFilePath request entity too large

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 10.14.5

HBuilderX类型: Alpha

HBuilderX版本号: 2.7.0

手机系统: 全部

手机厂商: 苹果

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

安卓华为Honor 8X JSN-AL00a 安卓9 EMUI:9.1.0;iphone6 12.4.5

操作步骤:

uni.canvasToTempFilePath({
// destWidth: 1080,
// destHeight: 1920,
canvasId: 'share-img-canvas',
quality:0.5,
success: function(res) {
console.log("===canvasToTempFilePath succ===",res);

                        },  
                        fail:function(err){  
                            console.log("===canvasToTempFilePath err===",err);  
                        }  
                    });

预期结果:

得到临时文件

实际结果:

超过1M报错

bug描述:

uni.canvasToTempFilePath request entity too large,小程序可以,生成的图片1M左右,app上500k左右可以

2020-05-09 17:32 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com - 技术猥琐男

我也遇到了,这个问题,请问最后怎么解决的????
我的 hbuilderx 版本 是 2.7.14 还是存在这个问题

7***@qq.com

7***@qq.com - 技术猥琐男

@DCloud_iOS_XHY @DCloud_IOS_XTY 请问这个问题有规划解决吗??ios 13,hbuilder2.7.14,在 画布中画了一张大小超过1m的图片,调用uni.canvasToTempFilePath 就会出现 request entity too large 这个错误。。。

  • jxtian

    小程序是真机,还是模拟?是否启用v3编译模式

    2020-06-30 15:34

jxtian

jxtian

测试了一下,小程序能输出3M的图片(微信开发者工具),app你可以用下面的代码测试一下

<template>  
    <view class="about">  
        测试canvasToTempFilePath超过1M报错:  
        <canvas style="width: 1920px; height: 1080px;" canvas-id="firstCanvas" @error="canvasIdErrorCallback">  
        </canvas>  
        <button type="default" @click="exportImageForCanvas">导出图片</button>  
    </view>  
</template>  

<script>  
    export default {  
         onReady: function (e) {  
                var context = uni.createCanvasContext('firstCanvas')      
                context.drawImage('../../../static/shuijiao.jpg',0,0);    //图片没有,可换一张  
                context.drawImage('../../../static/shuijiao.jpg',100,500);  
                context.drawImage('../../../static/shuijiao.jpg',200,50);  
                context.drawImage('../../../static/shuijiao.jpg',300,0);  
                context.drawImage('../../../static/shuijiao.jpg',500,100);  
                context.drawImage('../../../static/shuijiao.jpg',700,100);  
                context.drawImage('../../../static/shuijiao.jpg',1000,100);  
                context.drawImage('../../../static/shuijiao.jpg',1200,100);  
                context.drawImage('../../../static/shuijiao.jpg',1400,100);  
                context.drawImage('../../../static/shuijiao.jpg',1600,100);  
                context.drawImage('../../../static/shuijiao.jpg',1800,100);  
                context.drawImage('../../../static/shuijiao.jpg',0,0);  
                context.drawImage('../../../static/shuijiao.jpg',10,100);  
                context.drawImage('../../../static/shuijiao.jpg',20,200);  
                context.drawImage('../../../static/shuijiao.jpg',30,300);  
                context.drawImage('../../../static/shuijiao.jpg',50,400);  
                context.drawImage('../../../static/shuijiao.jpg',700,500);  
                context.drawImage('../../../static/shuijiao.jpg',100,600);  
                context.drawImage('../../../static/shuijiao.jpg',200,700);  
                context.drawImage('../../../static/shuijiao.jpg',400,800);  
                context.drawImage('../../../static/shuijiao.jpg',600,900);  
                context.drawImage('../../../static/shuijiao.jpg',800,100);  

                context.setStrokeStyle("#00ff00")  
                context.setLineWidth(5)  
                context.rect(0, 0, 200, 200)  
                context.stroke()  
                context.setStrokeStyle("#ff0000")  
                context.setLineWidth(2)  
                context.moveTo(160, 100)  
                context.arc(100, 100, 60, 0, 20 * Math.PI, true)  
                context.fillStyle = 'rgb(200, 0, 0)'  
                context.moveTo(140, 100)  
                context.arc(100, 100, 40, 0, Math.PI, false)  
                context.fillStyle = 'rgb(200, 0, 0)';  
                context.moveTo(85, 80)  
                context.arc(80, 80, 5, 0, 2 * Math.PI, true)  
                context.fillStyle = 'rgb(200, 0, 0)';  
                context.moveTo(125, 80)  
                context.arc(120, 80, 5, 0, 2 * Math.PI, true)  
                context.arc(100, 100, 60, 0, 2 * Math.PI, true)  
                context.moveTo(140, 100)  
                context.arc(100, 100, 40, 0, Math.PI, false)  
                context.moveTo(85, 80)  
                context.arc(80, 80, 5, 0, 2 * Math.PI, true)  
                context.moveTo(125, 80)  
                context.arc(120, 80, 5, 0, 2 * Math.PI, true)  
                context.stroke()  

                context.draw()  
            },  
            methods: {  
                canvasIdErrorCallback: function (e) {  
                    console.error(e.detail.errMsg)  
                },  

                exportImageForCanvas: function (){  
                    uni.canvasToTempFilePath({  
                      // x: 100,  
                      // y: 200,  
                      // width: 50,  
                      // height: 50,  
                      // destWidth: 100,  
                      // destHeight: 100,  
                      canvasId: 'firstCanvas',  
                      quality: 0.5,  
                      success: function(res) {  
                        // 在H5平台下,tempFilePath 为 base64  
                        console.log(res.tempFilePath)  
                      } ,  
                      fail: function(err) {  
                        console.log("===canvasToTempFilePath err===",err);  
                      }  
                    })  
                }  
            }  
    }  
</script>  

<style>  
</style>
  • 5***@qq.com

    这的确是个问题,希望官方及时更新

    2020-07-29 09:06

9***@qq.com

9***@qq.com

请问解决了吗

该问题目前已经被锁定, 无法添加新回复