我正在尝试调整上传图片的大小。我收到错误
警告:imagecreatefromjpeg()[function.imagecreatefromjpeg]:gd-jpeg,libjpeg:recoverable error:第309行/home/rumdood/lib/photograph.php中JPEG文件的提前结束
警告:imagecreatefromjpeg()[function.imagecreatefromjpeg]:'/ home /rumdood / public_html / uploads / 13018946005603.jpg'不是309行/home/rumdood/lib/photograph.php中的有效JPEG文件
警告:imagecopyresampled():提供的参数不是410行/home/rumdood/lib/photograph.php中的有效图像资源
警告:无法修改标题信息 - 第22行/home/rumdood/application.php中已经发送的标题(在/home/rumdood/lib/photograph.php:309开始输出)
图像没有调整大小。最后一个错误是由于头功能。
第309行就像这样
$this->image['render'] = imagecreatefromjpeg( $this->s_image );
第410行就像这样
imagecopyresampled( $this->image['composite'], $this->image['render'],
0, 0, 0, 0, $new_width, $new_height,
$this->image['width'], $this->image['height'] );
我的php版本是PHP Version 5.2.6
来自phpinfo的我的GD
GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.1.9
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XPM Support enabled
XBM Support enabled
答案 0 :(得分:4)
@charles 建议..两个错误都是自我解释
检查来自
的有效图片 if($_FILES["userPicture"]["error"] == 0) {
// File was uploaded ok, so it's ok to proceed with the filetype check.
$uploaded_type = exif_imagetype($_FILES["userPicture"]["tmp_name"]);
// What we have now is a number representing our file type.
switch($uploaded_type) {
case "1":
$uploaded_type = "gif";
break;
case "2":
$uploaded_type = "jpg";
break;
case "3":
$uploaded_type = "png";
break;
}
}
有关
imagecreatefromjpeg()
:gd-jpeg,libjpeg:可恢复错误:JPEG过早结束
这是php 5和gd2的问题。继承人如何解决它
imagecreatefromjpeg()
无法修改标题信息在页面顶部写ob_start();
参考
答案 1 :(得分:3)
错误,
libjpeg:可恢复的错误:JPEG文件的过早结束
和
...不是有效的JPEG文件
非常明显。您尝试使用的图像未被底层JPEG解析器识别为有效。文件很可能已损坏或被截断。
这是图像本身的问题,而不是您的代码。你的代码看起来很好。
答案 2 :(得分:2)
看起来你试图加载的图像不是真的JPG(可能有人刚刚重命名或其他东西)。尝试使用一些图像处理程序(如GIMP)重新保存它。或者如果您已将其上传到服务器,则上传时可能会出现一些错误。此外,如果文件重量超过服务器上的一个文件大小限制,它可能会被残酷地削减。
Warning: Cannot modify header information - headers already sent by (output started at /home/rumdood/lib/photograph.php:309) in /home/rumdood/application.php on line 22
您必须在代码的开头发送标头。 <?php
标记之前甚至没有空格。