У меня есть приложение для рисования холста, такое как scri.ch. Моя проблема заключается в том, что я отправляю вывод с canv.toDataURL('image/png')
как скрипт POST для PHP. Однако, когда я сохраняю эти данные в файл, они обрезаются. Я думал, что, возможно, это может быть вызвано низким лимитом max_input_vars
. Я увеличил его до 1.000.000 и до сих пор ничего. JavaScript выглядит так:Данные сообщения Png слишком велики для PHP
function toPng() {
document.body.innerHTML += '<canvas id="copyCanvas" width="' + canv.width + '" height="' + canv.height + '"></canvas>';
var copyCanv = document.getElementById('copyCanvas'),
copyCtx = copyCanv.getContext('2d');
copyCtx.fillStyle = backgroundColor;
copyCtx.fillRect(0, 0, canv.width, canv.height);
copyCtx.drawImage(canv, 0, 0);
document.body.innerHTML += '<form id="imageData" method="post"><input type="text" maxlength="100000000" name="imageData" id="imageDataField"><input type="text" name="baseImage" id="baseImageField"></form>';
var form = document.getElementById('imageData');
form.action = './res/php.php';
document.getElementById('imageDataField').value = copyCanv.toDataURL("image/png");
document.getElementById('baseImageField').value = window.location.search.replace('&img=', '') || '';
form.submit();
}
Когда я эхо отослал данные назад, нижняя часть изображения отсутствует. Какие-нибудь советы?
Попробуйте увеличить размер max_post_size в php.ini. –
Также учитывайте ошибки и внимательно их слушайте. – kero
Как отметил @JayBhatt, вам нужно увеличить max_post_size, поскольку 'canv.toDataURL()' преобразуется в строку base64, которая может быть довольно большой в зависимости от вашего размера холста – srquinn