]> git.mxchange.org Git - quix0rs-gnu-social.git/commit
Fix for ticket #3007: .bmp avatar uploads weren't being properly converted to PNG...
authorBrion Vibber <brion@pobox.com>
Mon, 24 Jan 2011 20:22:47 +0000 (12:22 -0800)
committerBrion Vibber <brion@pobox.com>
Mon, 24 Jan 2011 20:22:47 +0000 (12:22 -0800)
commit820dd293c998f3c5a15f637467ba6ce2c9793183
tree4046c0cafb0abd6f0f834afa3b2390bf3204ec1f
parentc309bbae93aff3e4a47095bf15063725de107215
Fix for ticket #3007: .bmp avatar uploads weren't being properly converted to PNG in all cases

Part of the reported issue was previuosly fixed by dc497ed0 (smaller size images being blanked).
This commit fixes the remaining bug with original-size avatars being left as BMP (which could include the 96px size for instance, which could cause problems in browsers not supporting BMP natively)

Added ImageFile::copyTo() as a convenient alias for resizeTo() when not resizing; this performs the BMP/XPM/XBM->PNG conversion if needed, or copies the original file.
Copying instead of using move_uploaded_file() is fine here since:
a) the files are cleaned up on script completion anyway (vs moving to remove it)
b) we're already performing getimagesize() and possibly load/resize on the file before this point (vs needing to move the file into a usable area to work with open_basedir restrictions that prevent working directly with uploaded files in the temp dir; since this would fail anyway, we lose nothing)

ImageFile::preferredType() now works on $this->type instead of asking for one, to make it handier to use from outside. (This is still needed in order for calling code to generate a target filename.)

Recommended for future:
* additional consolidation between the various ways of uploading avatars (touched avatarsettings, grouplogo, and apiaccountupdateprofileimage with similar minor changes)
* consolidate type checks and file naming into Avatar class
actions/apiaccountupdateprofileimage.php
actions/avatarsettings.php
actions/grouplogo.php
lib/imagefile.php