我正在制作关于宝石的项目我在哪里制作管理面板,用户可以上传图片我试图调整它工作的图像的一些方法,但它给我在我上传的给定目录中的黑色输出。 这是我的代码。
$target_path = SITE_ROOT .DS. $this->upload_dir .DS. $this->filename;
// Make sure a file doesn't already exist in the target location
if(file_exists($target_path)) {
$this->errors[] = "The file {$this->filename} already exists.";
return false;
}
// i am trying to resize the image
if( copy ($this->temp_path,$this->filename) or die ("Could not copy")){
$imagefile=$this->filename;
list($width, $height) = getimagesize($this->filename);
$image_p = imagecreatetruecolor($this->new_width,$this->new_height);
if ($this->type =='jpg')
{
$img = imagecreatefromgif($imagefile);
imagecopyresampled($image_p, $img, 0, 0, 0, 0, $this->new_width,$this->new_height, $width, $height);
imagegif($image_p,$target_path);
}
else{ echo 'something went wrongs';}
}
// Attempt to move the file
if(move_uploaded_file($this->temp_path, $target_path)) {
// Success
// Save a corresponding entry to the database
if($this->create()) {
// We are done with temp_path, the file isn't there anymore
unset($this->temp_path);
return true;
}
} else {
// File was not moved.
$this->errors[] = "The file upload failed, possibly due to incorrect permissions on the upload folder.";
return false;
}
答案 0 :(得分:2)
首先将imagecopyresampled函数更改为imagecopyresized函数。
imagecopyresized($image_p, $img, 0, 0, 0, 0, $new_width,$new_height, $width, $height);
将函数从imagecreatefromgif更改为imagecreatefromjpeg,因为你在if条件下使用jpg。并写下我给出的路径。
move_uploaded_file($this->temp_path, imagejpeg($image_p,$target_path,100));
如果不这样做,请务必取消链接,因为您使用的是复制功能,请确保取消链接。
unlink($this->filename);
我刚刚完成了。我希望它也适合你。