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