我有一个脚本,首先创建一个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>
然后发布到一个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>
但是这不再将图像保存到服务器,任何人都可以看到我在这里做错了吗?
答案 0 :(得分:0)
的更详细说明但是这不再将图像保存到服务器会有所帮助(例如您的js控制台输出或网络协议 - 在浏览器中“点击F12”)。
正如@charlietfl建议我猜
<input type="submit"...>
默认提交表单。尝试
<input type="button"...>