使用codeigniter固定大小的图片上传,howto?

时间:2013-04-21 14:59:07

标签: file codeigniter class uploading

我在codeigniter中使用文件上传类,可以成功上传图片。我的问题是如何确保用户上传的图像只有固定大小,600像素×360像素,仅此而已?我已经尝试使用上传数据数组来获取图像的高度和宽度,并检查这些值是TRUE还是FALSE。如果为false,我将错误字符串传递给视图,如果为true,则在视图中不显示任何内容,但我不确定它是否正常工作。任何人都可以帮忙解决这个问题吗?提前谢谢!

2 个答案:

答案 0 :(得分:2)

您可以将Image Manipulating库与File Uploading library结合使用。

使用文件上传库,您可以:

  • 确保上传的文件具有您想要的确切尺寸:

如果需要,您可以使用Image Manipulating库调整上传图像的大小,因此comlete解决方案如下所示:

$fileInfo = $this->upload->data();

if( $fileInfo['width'] == 600 && $fileInfo['height'] == 300 ) {
    // do something
} else {
    // initiialize library
    $this->image_lib->resize();
}

您可以在此处阅读有关这些库的更多信息:

http://ellislab.com/codeigniter/user-guide/libraries/image_lib.html

http://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html

答案 1 :(得分:1)

您可以使用GDI库工具查找图像的高度和宽度,以及其他信息。

例如:

$imgInfo = getimagesize("/path/to/image.png");
if ($imgInfo[0] != 600) && $imgInfo[1] != 360){
   throw new Exception("Illegal image size");
}

http://www.php.net/manual/en/function.getimagesize.php