Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP图像脚本没有';我不能通过$.post工作_Php_Jquery - Fatal编程技术网

PHP图像脚本没有';我不能通过$.post工作

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" /

我有一个脚本,它首先创建一个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>

$(文档).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的评论。