首页 > 解决方案 > blob 图像始终大小相同且不显示完整图像

问题描述

我使用以下代码通过 jquery 将 blob 发布到 php。

var blob = dataURLToBlob(dataURL);
    var reader = new FileReader();
    // this function is triggered once a call to readAsDataURL returns
    reader.onload = function(event){
        var fd = new FormData();
        fd.append('data', event.target.result);
        $.post("upload.php",{data: fd},
    function(data,status){
      alert("Data: " + data + "\nStatus: " + status);
    });
    };      
    // trigger the read from the reader...
    reader.readAsDataURL(blob);

上传.php

// pull the raw binary data from the POST array
$data = substr($_POST['data'], strpos($_POST['data'], ",") + 1);
// decode it
$decodedData = base64_decode($data);
// print out the raw data, 
echo ($decodedData);
$timestamp = date('YmdHis');
$fileName = ''.$timestamp.'.png';
file_put_contents($fileName, $decodedData);

我没有从数据库中获取数据,它直接来自我的“签名板”,然后将图像保存到文件夹中。当我通过 window.URL.createObjectURL(blob); 显示我的图像时 图片是正确的,但上传的图片只显示图片的四分之一到一半。

我注意到图像总是相同的大小(2KB),我的上传文件和帖子大小的 php 设置都是 40MB。

关于为什么我的图像总是相同大小的任何想法,因此只上传了一半的图像?

标签: javascriptphp

解决方案


max_input_vars将您的文件更改php.ini为更大的数字。


推荐阅读