mirror of
https://github.com/vichan-devel/vichan.git
synced 2024-12-01 18:47:20 +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';
|
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
|
// create image object
|
||||||
$image = new Image($post['file'], $post['extension']);
|
$image = new Image($post['file'], $post['extension']);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user