- Timestamp:
- 2013/07/28 20:43:47 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_13-dev/data/class/pages/LC_Page_ResizeImage.php
r22926 r23005 64 64 $this->lfInitParam($objFormParam); 65 65 $objFormParam->setParam($_GET); 66 $arrForm = $objFormParam->getHashArray(); 66 $arrErr = $objFormParam->checkError(); 67 if (SC_Utils_Ex::isBlank($arrErr)) { 67 68 68 $file = NO_IMAGE_REALFILE;69 $arrForm = $objFormParam->getHashArray(); 69 70 70 // NO_IMAGE_REALFILE以外のファイル名が渡された場合、ファイル名のチェックを行う 71 if (strlen($arrForm['image']) >= 1 72 && $arrForm['image'] !== NO_IMAGE_REALFILE) { 73 // ファイル名が正しく、ファイルが存在する場合だけ、$fileを設定 74 if (!$this->lfCheckFileName()) { 75 GC_Utils_Ex::gfPrintLog('invalid access :resize_image.php image=' . $arrForm['image']); 76 } elseif (file_exists(IMAGE_SAVE_REALDIR . $arrForm['image'])) { 77 $file = IMAGE_SAVE_REALDIR . $arrForm['image']; 71 // TODO: ファイル名を直接指定するような処理は避けるべき 72 // NO_IMAGE_REALFILE以外のファイル名が直接渡された場合、ファイル名のチェックを行う 73 if (strlen($arrForm['image']) >= 1 && $arrForm['image'] !== NO_IMAGE_REALFILE ) { 74 if (!$this->lfCheckFileName($arrForm['image'])) { 75 GC_Utils_Ex::gfPrintLog('invalid access :resize_image.php image=' . $arrForm['image']); 76 } 77 $file = SC_Utils_Ex::getSaveImagePath($arrForm['image']); 78 } else { 79 // 商品画像を取得する 80 $file = $this->lfGetProductImage($arrForm); 78 81 } 82 83 // リサイズ画像の出力 84 $this->lfOutputImage($file, $arrForm['width'], $arrForm['height']); 79 85 } 80 81 // リサイズ画像の出力82 $this->lfOutputImage($file, $arrForm['width'], $arrForm['height']);83 86 } 84 87 85 88 function lfInitParam(&$objFormParam) 86 89 { 90 $objFormParam->addParam('商品ID', 'product_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 91 $objFormParam->addParam('商品イメージキー', 'image_key', STEXT_LEN, '', array('GRAPH_CHECK', 'MAX_LENGTH_CHECK')); 87 92 $objFormParam->addParam('画像ファイル名', 'image', STEXT_LEN, 'a', array('MAX_LENGTH_CHECK')); 88 93 $objFormParam->addParam('画像の幅', 'width', STEXT_LEN, 'n', array('NUM_CHECK')); … … 93 98 * ファイル名の形式をチェック. 94 99 * 100 * @deprecated 2.13.0 商品IDを渡す事を推奨 101 * @param $image 95 102 * @return boolean 正常な形式:true 不正な形式:false 96 103 */ 97 function lfCheckFileName( )104 function lfCheckFileName($image) 98 105 { 99 $file = trim($ _GET['image']);106 $file = trim($image); 100 107 if (!preg_match("/^[[:alnum:]_\.-]+$/i", $file)) { 101 108 return false; … … 103 110 return true; 104 111 } 112 } 113 114 /** 115 * 商品画像のパスを取得する 116 * 117 * @param $arrForm 118 * @return string 指定された商品画像のパス 119 */ 120 function lfGetProductImage($arrForm) 121 { 122 $objQuery = SC_Query_Ex::getSingletonInstance(); 123 $table = 'dtb_products'; 124 $col = $arrForm['image_key']; 125 $product_id = $arrForm['product_id']; 126 //指定されたカラムが存在する場合にのみ商品テーブルからファイル名を取得 127 if (SC_Helper_DB_Ex::sfColumnExists($table, $col, '', '', false)) { 128 $product_image = $objQuery->get($col, $table, 'product_id = ?', array($product_id)); 129 } else { 130 GC_Utils_Ex::gfPrintLog('invalid access :resize_image.php image_key=' . $col); 131 $product_image = ''; 132 } 133 // ファイル名が正しく、ファイルが存在する場合だけ、$fileを設定 134 $file = SC_Utils_Ex::getSaveImagePath($product_image); 135 136 return $file; 105 137 } 106 138
Note: See TracChangeset
for help on using the changeset viewer.