e = "image/image_small.jpeg"; if(! $filename) { echo "<script>alert('文件不存在!')</script>"; } else if($type != 'image/pjpeg') { echo "<script>alert('文件格式不正确!')</script>"; } else { move_uploaded_file($_FILES['picture']['tmp_name'], $upfile); $dst_w = 150; $dst_h = 150; $sre_image = imagecreatefromjpeg($upfile); $src_w = imagesx($sre_image); $src_h = imagesy($sre_image); $dst_image = imagecreatetruecolor($dst_w, $dst_h); imagecopyresized($dst_image, $sre_image, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h); header('Content-Type: image/jpeg'); imagejpeg($dst_image, null); imagedestroy($sre_image); imagedestroy($dst_image); } } ?>代码是否有问题?
时间: 2023-11-28 16:05:02 浏览: 144
是的,代码有问题。首先,变量 `$filename` 没有定义,应该先定义它。其次,`$type` 变量也没有定义,需要从 `$_FILES` 数组中获取文件类型。另外,`$upfile` 变量也没有定义,需要先定义它。最后,`move_uploaded_file()` 函数需要传递正确的参数,其中第一个参数应该是上传的临时文件路径,第二个参数应该是保存文件的目标路径。
下面是修正后的代码:
```
<?php
$filename = "image/image_small.jpeg";
$upfile = "path/to/save/file.jpg";
if (!file_exists($filename)) {
echo "<script>alert('文件不存在!')</script>";
} else {
$type = $_FILES['picture']['type'];
if ($type != 'image/jpeg') {
echo "<script>alert('文件格式不正确!')</script>";
} else {
move_uploaded_file($_FILES['picture']['tmp_name'], $upfile);
$dst_w = 150;
$dst_h = 150;
$sre_image = imagecreatefromjpeg($upfile);
$src_w = imagesx($sre_image);
$src_h = imagesy($sre_image);
$dst_image = imagecreatetruecolor($dst_w, $dst_h);
imagecopyresized($dst_image, $sre_image, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
header('Content-Type: image/jpeg');
imagejpeg($dst_image, null);
imagedestroy($sre_image);
imagedestroy($dst_image);
}
}
?>
```
注意,这段代码只是处理了上传的图片并将其缩放为150x150像素大小。如果需要将图片保存到服务器上,需要修改 `$upfile` 变量为正确的保存路径,并添加相应的保存文件的代码。
阅读全文