我正在构建一个图像缩放器,它使用jcrop jQuery插件和php和ajax来上传和裁剪/缩放图像。我应该保存并裁剪/缩放图像时出现随机错误,问题是随机的,因为我可以使用相同的图像10次,以相同的方式和相同的大小裁剪它,它可以工作10次中的9次但是时间它不起作用我得到这个错误:
警告:imagecreatefromjpeg()[function.imagecreatefromjpeg]:gd-jpeg,libjpeg:可恢复错误:JPEG文件的提前结束
在 /home/users/A006193/fgpostbus.nl/www.fgpostbus.nl/uploader/scale.php 的第 9行警告:imagecreatefromjpeg()[function.imagecreatefromjpeg]:'upload / cfd962453a1409fd59dfd5e6230e869eheaderFac12348.jpg'不是 /home/users/A006193/fgpostbus.nl/www.fgpostbus.nl/uploader/中的有效JPEG文件scale.php 在 9
行警告:imagecopyresampled():提供的参数不是 /home/users/A006193/fgpostbus.nl/www.fgpostbus.nl/uploader/scale.php 中有效的图像资源< b> 13
图像以md5保存,之后你必须裁剪它,如果它不是必须的大小,它在裁剪时必须有数据发送到scale.php scale.php包含用于执行最后操作(裁剪,缩放和保存)的php我使用ajax发布php应该使用的详细信息。它会像这样发送:
x=354&y=0&w=245&h=245&url=upload%2Fcfd962453a1409fd59dfd5e6230e869eheaderFac12348.jpg&setW=160&setH=160
最终我的scale.php看起来像这样:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$src = $_POST['url'];
$targ_w = $_POST['setW'];
$targ_h = $_POST['setH'];
$img_r = imagecreatefromjpeg($src);
$dst_r = ImageCreateTrueColor( $targ_w, $targ_h );
imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'],
$targ_w,$targ_h,$_POST['w'],$_POST['h']);
imagejpeg($dst_r, $src, 90);
exit;
}
?>
问题在于我的头脑中没有任何关于给出错误的模板,即时通讯让它完全随机,所以如果有人会建议我可能做错了那么请告诉我。
答案 0 :(得分:0)
此路径upload%2Fcfd962453a1409fd59dfd5e6230e869eheaderFac12348.jpg
是否在服务器端?
因为如果没有,你需要上传实际的二进制文件;只传递URL中的文件名是行不通的。
您可能需要查看此处:POST method uploads。
答案 1 :(得分:0)
不要假设图像和远程服务器按预期工作,您应该使用curl在本地下载图像,然后处理它,处理您可能遇到的任何错误。
答案 2 :(得分:0)
试试这个
ini_set('gd.jpeg_ignore_warning', 1);
前 的 imagecreatefromjpeg()强>