这是我的第一篇文章,所以请原谅我在某些领域缺乏知识。
我正在尝试将 base64 图像发送到 php 页面。它在我的测试本地主机上工作正常,但一旦我上传它就不能在服务器上工作。
我有一个允许用户绘制然后保存图像的 Canvas 元素。将图像保存到 div id="result"后,我使用 jquery 将 div 粘贴到隐藏输入字段的值内,然后将表单提交到我的 canvas.php 页面。代码在这里:
<script type="text/javascript">
$(document).ready(function() {<br/>
$('#canvasform').submit(function(){<br/>
$('#pass_result').val(<br/>
$('#result').html()<br/>
);<br/>
});<br/>
});<br/>
<script>
<body>
<canvas id="thecanvas" width="800" height="400"></canvas>
<form action="canvas.php" method="post" id="canvasform"/>
<input type="hidden" name="pass_result" id="pass_result" /><br />
<input type="button" id="save" value="Save Image"><br>
<input type="submit" />
</form>
<div id="result"></div>
</body>
当我在我的本地主机上查看页面时,这工作正常。但是一旦我上传文件并查看页面,它就不会在 canvas.php 上正确显示图像。在本地主机上,我可以右键单击图像并在新选项卡中查看。
网址为:data:image/png;base64,iVBORw0KGg... 在服务器上时,我右键单击并在新选项卡中查看。网址为:http://mydomain.com/%22data:image/png;base64,iVBORw0KGg ...并给我一个 414 Request-URI Too Large 错误。
关于为什么这不能正确显示图像有什么想法吗?
Canvas .php:
<?php<br/>
$thediv = $_POST['pass_result'];<br/>
echo "Hello $thediv";<br/>
?>
最佳答案
url 长度有 8190(最大)个字符的限制。如果您的 url + base64data 的长度超过该长度或您的服务器限制设置的任何值,那么您将获得 414 状态。
关于jquery - 将 base64 图像传递到 PHP 页面适用于本地主机但不适用于服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285059/