コード例 #1
0
ファイル: emboss.php プロジェクト: webmatter/gallery3-contrib
 static function upload_new_overlay($file)
 {
     $tmp = $file['tmp_name'];
     $name = $file['name'];
     switch ($file['error']) {
         case UPLOAD_ERR_INI_SIZE:
             emboss::error(t("File size of {$name} exceeds maximum upload limit on server"));
             return;
             break;
         case UPLOAD_ERR_FORM_SIZE:
             emboss::error(t("File size of {$name} exceeds maximum upload limit set on page"));
             return;
             break;
         case UPLOAD_ERR_PARTIAL:
             emboss::error(t("File {$name} only partially uploaded"));
             return;
             break;
         case UPLOAD_ERR_NO_FILE:
             emboss::error(t("File {$name} failed to upload"));
             return;
             break;
     }
     $image_info = getimagesize($tmp);
     $types[] = IMAGETYPE_GIF;
     $types[] = IMAGETYPE_JPEG;
     $types[] = IMAGETYPE_PNG;
     if (!$image_info || !in_array($image_info[2], $types)) {
         emboss::error(t('Overlay image must be GIF, JPG, or PNG'));
         @unlink($tmp);
         return;
     }
     $n = db::build()->select('id')->from('emboss_overlays')->where('name', '=', $name)->execute()->count();
     if ($n > 0) {
         emboss::error(t("Overlay named {$name} already exists."));
         @unlink($tmp);
         return;
     }
     $width = $image_info[0];
     $height = $image_info[1];
     $where1 = array('width', '=', $width);
     $where2 = array('height', '=', $height);
     $where = array($where1, $where2);
     $n = db::build()->select('id')->from('emboss_overlays')->where('width', '=', $width)->where('height', '=', $height)->execute()->count();
     if ($n > 0) {
         emboss::error(t("Overlay with dimensions {$width} x {$height} already exists."));
         @unlink($tmp);
         return;
     }
     @rename($tmp, VARPATH . 'modules/emboss/' . $name);
     $overlay = ORM::factory('emboss_overlay');
     $overlay->name = $name;
     $overlay->width = $width;
     $overlay->height = $height;
     $overlay->active = 1;
     $overlay->save();
     emboss::success('Succesfully uploaded overlay ' . $file['name']);
     emboss::evaluate_overlays();
 }