예제 #1
0
     $bError = true;
 } elseif ($_FILES['file']['size'] > $opt['logic']['pictures']['maxsize']) {
     $tpl->assign('errorfile', ERROR_UPLOAD_ERR_SIZE);
     $bError = true;
 } elseif ($picture->allowedExtension($_FILES['file']['name']) == false) {
     $tpl->assign('errorfile', ERROR_UPLOAD_ERR_TYPE);
     $bError = true;
 }
 if ($bError == false) {
     $picture->setLocal(1);
     $fname = pathinfo($_FILES['file']['name'], PATHINFO_FILENAME);
     $ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
     // try saving file if smaller unchg_size and browser native format
     if (in_array(mb_strtolower($ext), ['gif', 'png', 'jpg', 'jpeg']) && $_FILES['file']['size'] <= $opt['logic']['pictures']['unchg_size']) {
         $picture->setFilenames($_FILES['file']['name']);
         if (!$picture->rotate($_FILES['file']['tmp_name'])) {
             $bError = true;
         }
     } else {
         $picture->setFilenames(mb_strtolower($fname) . '.jpg');
         if (!$picture->rotate_and_shrink($_FILES['file']['tmp_name'], PICTURE_MAX_LONG_SIDE)) {
             $bError = true;
         }
     }
     // try to save in db
     if (!$bError && $picture->save()) {
         if ($redirect == '') {
             $redirect = $picture->getPageLink();
         }
         $tpl->redirect($redirect);
     } else {