PHP图像脚本没有';我不能通过$.post工作
我有一个脚本,它首先创建一个base64图像字符串并用该字符串更新表单PHP图像脚本没有';我不能通过$.post工作,php,jquery,Php,Jquery,我有一个脚本,它首先创建一个base64图像字符串并用该字符串更新表单 <form method="post" action="/process.php"> <input type="hidden" id="base64image" name="myimage" value="***base64 string gets updated here***" /> <input type="submit" value="Create Rotated Image" /
<form method="post" action="/process.php">
<input type="hidden" id="base64image" name="myimage" value="***base64 string gets updated here***" />
<input type="submit" value="Create Rotated Image" />
</form>
然后,它发布到一个php脚本,该脚本将其旋转90度,保持透明度,并将其保存为服务器上的png
process.php
<?php
$data = str_replace("data:image/png;base64,","",$_POST["myimage"]);;
$data = base64_decode($data);
$degrees = 90;
$name = 'plate';
$im = imagecreatefromstring($data);
header('Content-Type: image/png');
imagealphablending($im, false);
imagesavealpha($im, true);
$rotation = imagerotate($im, $degrees, imageColorAllocateAlpha($im, 0, 0, 0, 127));
imagealphablending($rotation, false);
imagesavealpha($rotation, true);
imagepng($rotation);
$save = "* / root / my / image / directory / * image.png";
imagepng($rotation, $save);
imagedestroy($rotation);
imagedestroy($im);
?>
到目前为止,一切正常,它会旋转并保存到服务器,并在浏览器中显示该图像
虽然现在我想发布到同一个脚本,但是在后台运行它而不刷新页面
所以我试试这个
<form method="post" action="/process.php">
<input type="hidden" id="base64image" name="myimage" value="" />
<input type="submit" value="Create Rotated Image" onclick="postimage();" />
</form>
<script>
$( document ).ready(function() {
var mybase64image = $('#base64image').val();
function postimage() {
$.post("/process.php", {myimage:mybase64image});
};
});
</script>
$(文档).ready(函数(){
var mybase64image=$('#base64image').val();
函数positmage(){
$.post(“/process.php”,{myimage:mybase64image});
};
});
但这不再将图像保存到服务器上,有人能看到我在这里做错了什么吗?对的更详细描述,但这不再将图像保存到服务器上会有所帮助(例如,您的js控制台输出或网络协议-“在浏览器中点击F12”) 正如@charlietfl所暗示的,我猜
<input type="submit"...>
默认情况下提交表单。试一试
<input type="button"...>
对进行更详细的描述,但这不会再将图像保存到服务器上会有所帮助(例如,您的js控制台输出或网络协议-“点击浏览器中的F12”) 正如@charlietfl所暗示的,我猜
<input type="submit"...>
默认情况下提交表单。试一试
<input type="button"...>
这里有什么代码:***base64字符串在这里更新***
?您需要阻止默认表单提交。增加post请求正文的大小我已经在php.ini中将post\u max\u大小设置为300M,这是什么意思?结果没有变化,之前设置为150M。正如@charlietfl所说的,试着像这样编写函数:$(“#myform”).submit(函数(e){e.preventDefault();}这里有什么代码:***base64字符串在这里更新***
?您需要阻止默认表单提交。增加post请求正文的大小我已经在php.ini中将post_max_大小设置为300M,这就是您的意思?结果没有变化,以前设置为150M。正如@charlietfl所说的,尝试这样编写您的函数:$(“#myform”).submit(函数(e){e.preventDefault();}我不能发布整个base64字符串,它超过143000个字符,stackoverflow只允许30000个字符…它的结构基本上类似于…数据:image/png;base64,一堆字符/数字我猜具体的图像数据与此无关。我想弄清楚的是,你的浏览器是否真的通过ne发送了任何内容网络。请使用注释并查看上面a.Rossi的注释。我不能发布整个base64字符串,它超过143000个字符,stackoverflow只允许30000个字符…它的结构基本上像…数据:image/png;base64,一堆字符/数字我猜具体的图像数据在这里不相关。我是什么试图弄清楚的问题是,你的浏览器是否通过网络发送了任何东西。请使用这些评论,并查看上面a.Rossi的评论。