PHP图像脚本不能通过$ .post工作

时间:2016-06-01 03:50:17

标签: 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>

然后发布到一个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>

但是这不再将图像保存到服务器,任何人都可以看到我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

的更详细说明但是这不再将图像保存到服务器会有所帮助(例如您的js控制台输出或网络协议 - 在浏览器中“点击F12”)。

正如@charlietfl建议我猜

<input type="submit"...>

默认提交表单。尝试

<input type="button"...>
相关问题