【发布时间】:2014-03-23 13:07:48
【问题描述】:
我有一个可以保存的画布绘图,但是当我使用 ajax 时,我只能发送数据字符串并且我发送的名称没有被拾取,有人可以帮我解释为什么名称不是t被捡起来,是我的javascript或php有问题吗?
这里是 ajax javascript
var save_name = document.getElementById('save_name').value;
document.getElementById('imagebox').style.display = "none";
document.getElementById('imageoverlay').style.display = "none";
var Drawing = document.getElementById('canvas');
var drawingString = Drawing.toDataURL("image/png");
var postData = "canvasData="+drawingString;
var ajax = new XMLHttpRequest();
var name = "potato";
ajax.open("POST",'save_image.php',true);
ajax.setRequestHeader('Content-Type', 'canvas/upload');
ajax.onreadystatechange=function()
{
if(ajax.readyState == 4){
alert("image saved");
}
}
ajax.send(postData+"name="+save_name);
这里是 php
if(isset($GLOBALS["HTTP_RAW_POST_DATA"])){
$name = $_POST['name'];
$rawImage = $GLOBALS["HTTP_RAW_POST_DATA"];
$removeHeaders = substr($rawImage, strpos($rawImage, ",")+1);
$decode = base64_decode($removeHeaders);
$fopen = fopen('user/'.$log_username.'/'.$name.'.png', 'wb');
fwrite($fopen, $decode);
fclose($fopen);
}
代码有效,但它只是没有选择名称,因此它将图像保存为.png
【问题讨论】:
-
你需要在
name=上添加一个&,所以它就像postData+"&name="+save_name -
我把它改成了这个,但不幸的是它不起作用
标签: javascript php ajax image-processing html5-canvas