// }}} // {{{ process uploaded file $upfiles = array(); if (!empty($_GET['upload']) && !empty($_FILES['upimg'])) { $errors = array_count_values($_FILES['upimg']['error']); if (!empty($errors[UPLOAD_ERR_NO_TMP_DIR])) { p2die('ImageCache2 - ファイルアップロード用のテンポラリフォルダがありません。'); } elseif (count($_FILES['upimg']['error']) == $errors[UPLOAD_ERR_NO_FILE]) { P2Util::pushInfoHtml($err_fmt['none']); } else { // サムネイル作成クラスのインスタンスを作成 $thumbnailer = new ImageCache2_Thumbnailer(ImageCache2_Thumbnailer::SIZE_DEFAULT); // DBに記録する共通データを設定 $f_host = 'localhost'; $f_time = time(); $f_memo = isset($_POST['memo']) ? ImageCache2_DataObject_Images::staticUniform($_POST['memo'], 'CP932') : ''; $f_rank = isset($_POST['rank']) ? intval($_POST['rank']) : 0; if ($f_rank > 5) { $f_rank = 5; } elseif ($f_rank < 0) { $f_rank = 0; } // アップロードされたファイルを処理 foreach ($_FILES['upimg']['name'] as $key => $value) { $path = $_POST['path'][$key]; $name = $_FILES['upimg']['name'][$key]; $type = $_FILES['upimg']['type'][$key]; $filesize = $_FILES['upimg']['size'][$key]; $tmpname = $_FILES['upimg']['tmp_name'][$key]; $errcode = $_FILES['upimg']['error'][$key]; if ($errcode == UPLOAD_ERR_NO_FILE) {
$execDL = false; $isError = true; } // プレビューの大きさ if (isset($params['preview_size']) && in_array($params['preview_size'], array_keys($_preview_size))) { $thumb_type = (int) $params['preview_size']; } else { $thumb_type = 1; } // リファラとメモ $extra_params = ''; if (isset($params['ref']) && strlen(trim($params['ref'])) > 0) { $extra_params .= '&ref=' . rawurlencode($params['ref']); } if (isset($params['memo']) && strlen(trim($params['memo'])) > 0) { $new_memo = ImageCache2_DataObject_Images::staticUniform($params['memo'], 'CP932'); $_memo_en = rawurlencode($new_memo); // レンダリング時にhtmlspecialchars()されるので、ここでは&を&にしない $extra_params .= '&memo=' . $_memo_en . '&' . $_conf['detect_hint_q_utf8']; } else { $new_memo = null; } // 連番 $serial_pattern = '/\\[(\\d+)-(\\d+)\\]/'; if (!empty($params['serial'])) { // プレースホルダとユーザ指定パラメータ if (strpos($params['uri'], '%s') !== false && !preg_match($serial_pattern, $params['uri'], $from_to)) { if (strpos(preg_replace('/%s/', ' ', $params['uri'], 1), '%s') !== false) { P2Util::pushInfoHtml('<p>エラー: URLに含められるプレースホルダは一つだけです。</p>'); $execDL = false; $isError = true;
/** * スレッド表示オブジェクトにImageCache2で使う変数をアサインする */ public static function initImageCache($aShowThread) { global $_conf; $dpr = 1.0; if (!$_conf['ktai']) { $aShowThread->thumb_id_suffix = '-' . strtr(microtime(), '. ', '--'); $aShowThread->thumbnailer = new ImageCache2_Thumbnailer(ImageCache2_Thumbnailer::SIZE_PC); } else { $preview_size = ImageCache2_Thumbnailer::SIZE_PC; $thumb_size = ImageCache2_Thumbnailer::SIZE_MOBILE; if ($_conf['iphone'] && !empty($_SESSION['device_pixel_ratio'])) { $dpr = $_SESSION['device_pixel_ratio']; if ($dpr === 1.5) { $preview_size |= ImageCache2_Thumbnailer::DPR_1_5; $thumb_size |= ImageCache2_Thumbnailer::DPR_1_5; } elseif ($dpr === 2.0) { $preview_size |= ImageCache2_Thumbnailer::DPR_2_0; $thumb_size |= ImageCache2_Thumbnailer::DPR_2_0; } else { $dpr = 1.0; } } $aShowThread->inline_prvw = new ImageCache2_Thumbnailer($preview_size); $aShowThread->thumbnailer = new ImageCache2_Thumbnailer($thumb_size); } if ($aShowThread->thumbnailer->ini['General']['automemo']) { $aShowThread->img_memo = ImageCache2_DataObject_Images::staticUniform($aShowThread->thread->ttitle, 'CP932'); $aShowThread->img_memo_query = '&memo=' . rawurlencode($aShowThread->img_memo); $aShowThread->img_memo_query .= '&' . $_conf['detect_hint_q_utf8']; } else { $aShowThread->img_memo = null; $aShowThread->img_memo_query = ''; } $aShowThread->img_dpr = $dpr; if ($dpr === 1.5 || $dpr === 2.0) { $aShowThread->img_dpr_query = '&d=' . $dpr; } else { $aShowThread->img_dpr_query = ''; } self::loadClass('ImageCache2_Switch', 'ImageCache2/Switch.php'); if (!ImageCache2_Switch::get($_conf['ktai'])) { $GLOBALS['pre_thumb_limit'] = 0; $GLOBALS['pre_thumb_limit_k'] = 0; $GLOBALS['pre_thumb_unlimited'] = false; $GLOBALS['pre_thumb_ignore_limit'] = false; $_conf['expack.ic2.newres_ignore_limit'] = false; $_conf['expack.ic2.newres_ignore_limit_k'] = false; } }