Javascript 保存图像时出错
我在保存图像时遇到问题 主要问题是当我在Android 4.1.2(三星手机)上保存图像时 我在internet explorer或chrome上运行时没有问题 (也可以看看谷歌的解决方案,但没有找到任何有帮助的,例如) 在javascript中,我对图像进行了一些操作:旋转图像,按大小缩小图像:Javascript 保存图像时出错,javascript,php,android,crc,Javascript,Php,Android,Crc,我在保存图像时遇到问题 主要问题是当我在Android 4.1.2(三星手机)上保存图像时 我在internet explorer或chrome上运行时没有问题 (也可以看看谷歌的解决方案,但没有找到任何有帮助的,例如) 在javascript中,我对图像进行了一些操作:旋转图像,按大小缩小图像: mystr = myCanvas.toDataURL("image/png"); 字符串类似于: 数据:图像/png;base64,Ivborw0Kggoaaaansuhueugaaalgaajyc
mystr = myCanvas.toDataURL("image/png");
字符串类似于:
数据:图像/png;base64,Ivborw0Kggoaaaansuhueugaaalgaajycayaaac
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
保存图像时(通过“POST”方法将其发送到php)。我有一个例外:
<br />
<b>Warning</b>: imagecreatefrompng(): gd-png: fatal libpng error: IHDR: CRC error in <b>*********</b> on line <b>105</b><br />
<br />
<b>Warning</b>: imagecreatefrompng(): gd-png error: setjmp returns error condition in <b>*********</b> on line <b>105</b><br />
<br />
<b>Warning</b>: imagecreatefrompng(): 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAYAAAC ZpjcAAAABHNCSVQICAgIfAhkiAAABZ9JREFUeJzswQENAAAAwqD3T20PBxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA in <b>/home/********/saveImage.php</b> on line <b>105</b><br />
<br />
<b>Warning</b>: imagesx() expects parameter 1 to be resource, boolean given in <b>/home/*********************</b> on line <b>135</b><br />
<br />
<b>Warning</b>: imagesy() expects parameter 1 to be resource, boolean given in <b>/home/*********************</b> on line <b>136</b><br />
<br />
<b>Warning</b>: imagecreatetruecolor(): Invalid image dimensions in <b>/home/*********************</b> on line <b>176</b><br />
<br />
<b>Warning</b>: imagecopyresized() expects parameter 1 to be resource, boolean given in <b>/home/*********************</b> on line <b>183</b><br />
<br />
<b>Warning</b>: imagerotate() expects parameter 1 to be resource, boolean given in <b>/home/*********************</b> on line <b>211</b><br />
我没有“GET”方法,但正如我所知,对于javascript,我做了如下操作,也有错误,但要少得多
xmlhttp.open("POST", "saveImage.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
...
xmlhttp.send("&scale=" + scaleRatio +
"&top=0" +
"&left=0" +
// ...
"&src=" + encodeURIComponent(s)); // **** src is the 300K string send to server.
在服务器站点上,我不知道是否应该解码图像300K字符串:
$imagebin = (urldecode)((string)$_POST['src']); // is decode necessary?
正如我所猜测的,我调用ajax的方式是不正确的(它可能有时解码字符串,有时不解码?)
。。。有时我会犯错误(我不是一次又一次地犯同样的错误——这似乎是随机解决的):
HTTP 403
我得到了php版本5.4.21。
gd版本:捆绑(兼容2.1.0)
有什么问题吗
谢谢:)在我调查这个案件时,有两个主要问题导致了错误:
xmlhttp.open("POST", "saveImage.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
...
xmlhttp.send("&scale=" + scaleRatio +
"&top=0" +
"&left=0" +
// ...
"&src=" + encodeURIComponent(s)); // **** src is the 300K string send to server.
$imagebin = (urldecode)((string)$_POST['src']); // is decode necessary?
$.ajax({
url : "saveImage.php",
type: "POST",
dataType: "html",
data: {
'scale': 1
'top': 0,
'left': 0,
'ext': picExt,
'src': encodeURIComponent(s) /*********/
},
timeout: 30000
}).success(function (result) {
// code doesn't reach here
s = result;
}).fail(function (jqXHR, textStatus) {
// ******* code doesn't reach here any more ******
if (textStatus === "timeout") {
// ****** code doesn't reach here
} else {
// ******* code doesn't reach here any more ******
}
// ******* code doesn't reach here any more ******
});