javascript - 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。
关于为什么我的图像总是相同大小的任何想法,因此只上传了一半的图像?
解决方案
max_input_vars
将您的文件更改php.ini
为更大的数字。
推荐阅读
- python-3.x - 我正在将参数传递给函数,但它在添加链表时仍然给出错误代码缺少参数
- c# - 选择列表 onchange 应预填充 Razor 页面中的文本字段值
- node.js - 弃用警告:不推荐使用 OutgoingMessage.prototype._headers
- ocaml - ocaml 中的 ('a * 'a) list 和 'a * 'a list 有什么区别?
- azure - 将 AppCenter 事件重新同步到 AppInsight
- excel - Excel VBA - 使用 3 个行元素和 1 个列元素从数据透视表中获取数据
- asp.net - 非托管 dll 调用函数的行为在控制台应用程序、带有 iis express 的 asp.net 应用程序和真实 iis 上的 asp.net 应用程序之间是不同的
- r - 根据 R 中的时间趋势对变量进行编码?
- mysql - 是否可以在没有 CTE 的情况下使用 MySQL 计算列中行之间的值差异?
- css - 有谁知道我怎样才能摆脱表格顶部的这个额外像素?