]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/imagefile.php
Merge branch '0.9.x' into facebook-upgrade
[quix0rs-gnu-social.git] / lib / imagefile.php
index 7b047945528ec4dffa331b09849b9f2db82663fd..b70fd248e111dfc72d0a91b44c43cfda8a2c80c4 100644 (file)
@@ -60,6 +60,19 @@ class ImageFile
         $this->filepath = $filepath;
 
         $info = @getimagesize($this->filepath);
+
+        if (!(
+            ($info[2] == IMAGETYPE_GIF && function_exists('imagecreatefromgif')) ||
+            ($info[2] == IMAGETYPE_JPEG && function_exists('imagecreatefromjpeg')) ||
+            $info[2] == IMAGETYPE_BMP ||
+            ($info[2] == IMAGETYPE_WBMP && function_exists('imagecreatefromwbmp')) ||
+            ($info[2] == IMAGETYPE_XBM && function_exists('imagecreatefromxbm')) ||
+            ($info[2] == IMAGETYPE_PNG && function_exists('imagecreatefrompng')))) {
+
+            throw new Exception(_('Unsupported image file format.'));
+            return;
+        }
+
         $this->type = ($info) ? $info[2]:$type;
         $this->width = ($info) ? $info[0]:$width;
         $this->height = ($info) ? $info[1]:$height;
@@ -72,6 +85,8 @@ class ImageFile
             break;
          case UPLOAD_ERR_INI_SIZE:
          case UPLOAD_ERR_FORM_SIZE:
+            // TRANS: Exception thrown when too large a file is uploaded.
+            // TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB".
             throw new Exception(sprintf(_('That file is too big. The maximum file size is %s.'),
                 ImageFile::maxFileSize()));
             return;
@@ -97,19 +112,6 @@ class ImageFile
             return;
         }
 
-        if ($info[2] !== IMAGETYPE_GIF &&
-            $info[2] !== IMAGETYPE_JPEG &&
-            $info[2] !== IMAGETYPE_BMP &&
-            $info[2] !== IMAGETYPE_WBMP &&
-            $info[2] !== IMAGETYPE_XBM &&
-            $info[2] !== IMAGETYPE_XPM &&
-            $info[2] !== IMAGETYPE_PNG) {
-
-            @unlink($_FILES[$param]['tmp_name']);
-            throw new Exception(_('Unsupported image file format.'));
-            return;
-        }
-
         return new ImageFile(null, $_FILES[$param]['tmp_name']);
     }
 
@@ -159,9 +161,6 @@ class ImageFile
          case IMAGETYPE_XBM:
             $image_src = imagecreatefromxbm($this->filepath);
             break;
-         case IMAGETYPE_XPM:
-            $image_src = imagecreatefromxpm($this->filepath);
-            break;
          default:
             throw new Exception(_('Unknown file type'));
             return;
@@ -204,10 +203,6 @@ class ImageFile
             //we don't want to save XBM... it's a rare format that we can't guarantee clients will support
             //save png instead
             $this->type = IMAGETYPE_PNG;
-        } else if($this->type == IMAGETYPE_XPM) {
-            //we don't want to save XPM... it's a rare format that we can't guarantee clients will support
-            //save png instead
-            $this->type = IMAGETYPE_PNG;
         }
 
         $outname = Avatar::filename($this->id,
@@ -248,11 +243,16 @@ class ImageFile
         $value = ImageFile::maxFileSizeInt();
 
         if ($value > 1024 * 1024) {
-            return ($value/(1024*1024)) . _('MB');
+            $value = $value/(1024*1024);
+            // TRANS: Number of megabytes. %d is the number.
+            return sprintf(_m('%dMB','%dMB',$value),$value);
         } else if ($value > 1024) {
-            return ($value/(1024)) . _('kB');
+            $value = $value/1024;
+            // TRANS: Number of kilobytes. %d is the number.
+            return sprintf(_m('%dkB','%dkB',$value),$value);
         } else {
-            return $value;
+            // TRANS: Number of bytes. %d is the number.
+            return sprintf(_m('%dB','%dB',$value),$value);
         }
     }