mirror of
https://github.com/vichan-devel/vichan.git
synced 2024-11-29 09:44:28 +01:00
find image size before loading image into memory
This commit is contained in:
parent
0989a26975
commit
76563e9b26
34
post.php
34
post.php
@ -431,6 +431,40 @@
|
||||
}
|
||||
|
||||
require_once 'inc/image.php';
|
||||
|
||||
if($config['imagick']) {
|
||||
// This is tricky, because Imagick won't let us find
|
||||
// an image's dimensions without loading it all into
|
||||
// memory first, unlike GD which provides the
|
||||
// getimagesize() to do exactly that. This section
|
||||
// is why GD is required, even when using Imagick
|
||||
// instead. There doesn't seem to be an alternative.
|
||||
// Necessary for security, as Imagick even ignores
|
||||
// PHP's memory limit.
|
||||
|
||||
// first try GD's getimagesize()
|
||||
if($size = @getimagesize($post['file'])) {
|
||||
if($size[0] > $config['max_width'] || $size[1] > $config['max_height']) {
|
||||
file_unlink($post['file']);
|
||||
error($config['error']['maxsize']);
|
||||
}
|
||||
} else {
|
||||
// GD failed
|
||||
// TODO?
|
||||
}
|
||||
} else {
|
||||
// find dimensions of an image using GD
|
||||
if(!$size = @getimagesize($post['file'])) {
|
||||
file_unlink($post['file']);
|
||||
error($config['error']['invalidimg']);
|
||||
}
|
||||
if($size[0] > $config['max_width'] || $size[1] > $config['max_height']) {
|
||||
file_unlink($post['file']);
|
||||
error($config['error']['maxsize']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// create image object
|
||||
$image = new Image($post['file'], $post['extension']);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user