【发布时间】:2012-10-18 06:11:08
【问题描述】:
我在我的网站上使用 ckeditor。在将图像从本地系统上传到服务器时,我想修复上传图像的宽度和高度。
【问题讨论】:
我在我的网站上使用 ckeditor。在将图像从本地系统上传到服务器时,我想修复上传图像的宽度和高度。
【问题讨论】:
至少有两种方法可以解决:
1. 创建自定义上传脚本,它将“上传”您的图像并修复 w&h 参数。 Documentation with examples here. 还有一些代码:
在 HTML 中:
<pre>
CKEDITOR.replace( 'editor1',
{
filebrowserImageUploadUrl: '/uploader/upload.php'
});
</pre>
在 /uploader/upload.php 中:
<pre>
function resizeImage($file, $filename, $newwidth = 800, $newheight = 600)
{
$type = substr($file,strrpos($file,".")+1);
switch($type)
{
case 'jpg':
$src = imagecreatefromjpeg($file);
break;
case 'jpeg':
$src = imagecreatefromjpeg($file);
break;
case 'gif':
$src = imagecreatefromgif($file);
break;
case 'png':
$src = imagecreatefrompng($file);
break;
default:
$src = imagecreatefromjpeg($file);
break;
}
list($width,$height)=getimagesize($file);
$tmp=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
switch($type) {
case 'jpg':
imagejpeg($tmp,$filename,100);
break;
case 'jpeg':
imagejpeg($tmp,$filename,100);
break;
case 'gif':
imagegif($tmp,$filename,100);
break;
case 'png':
imagepng($tmp,$filename,9);
break;
case 'wbm':
imagewbmp($tmp,$filename,100);
break;
default:
imagejpeg($tmp,$filename,100);
break;
}
imagedestroy($src);
imagedestroy($tmp);
return true;
}
$img = resizeImage($_FILES['file']['tmp_name'], $_FILES['file']['name'], $newwidth = 800, $newheight = 600);
</pre>
附言有用于搜索查询“php image resize”等的脚本音调。
2. 使用一些 CKeditor 模式。这是解决方案:another stackoverflow question。
【讨论】: