avif support
This commit is contained in:
@@ -29,6 +29,7 @@ d_pic/*.jpg
|
|||||||
d_pic/*.gif
|
d_pic/*.gif
|
||||||
d_pic/*.png
|
d_pic/*.png
|
||||||
d_pic/*.webp
|
d_pic/*.webp
|
||||||
|
d_pic/*.avif
|
||||||
d_pic/uploaded_image
|
d_pic/uploaded_image
|
||||||
|
|
||||||
/dist_js
|
/dist_js
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class UploadImage extends \sammo\BaseAPI
|
|||||||
}
|
}
|
||||||
|
|
||||||
$extension = ltrim($contentType, 'image/');
|
$extension = ltrim($contentType, 'image/');
|
||||||
$validExtensions = ['png', 'jpeg', 'jpg', 'gif', 'webp'];
|
$validExtensions = ['png', 'jpeg', 'jpg', 'gif', 'webp', 'avif'];
|
||||||
if (!in_array(strtolower($extension), $validExtensions)) {
|
if (!in_array(strtolower($extension), $validExtensions)) {
|
||||||
return '지원하지 않는 이미지 파일입니다: ' . $contentType;
|
return '지원하지 않는 이미지 파일입니다: ' . $contentType;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -279,7 +279,7 @@
|
|||||||
label-cols-lg="3"
|
label-cols-lg="3"
|
||||||
content-cols-sm
|
content-cols-sm
|
||||||
content-cols-lg="7"
|
content-cols-lg="7"
|
||||||
description="업로드할 파일을 선택해주세요. (jpg, png, gif, webp)"
|
description="업로드할 파일을 선택해주세요. (jpg, png, gif, webp, avif)"
|
||||||
label="이미지 업로드"
|
label="이미지 업로드"
|
||||||
label-align="right"
|
label-align="right"
|
||||||
:label-for="`${uuid}_image_upload`"
|
:label-for="`${uuid}_image_upload`"
|
||||||
@@ -288,7 +288,7 @@
|
|||||||
:id="`${uuid}_image_upload`"
|
:id="`${uuid}_image_upload`"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
type="file"
|
type="file"
|
||||||
accept=".jpg,.jpeg,.png,.gif,.webp"
|
accept=".jpg,.jpeg,.png,.gif,.webp,.avif"
|
||||||
@change="chooseImage"
|
@change="chooseImage"
|
||||||
/>
|
/>
|
||||||
</BFormGroup>
|
</BFormGroup>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ $size = getImageSize($image['tmp_name']);
|
|||||||
|
|
||||||
$imageType = $size[2];
|
$imageType = $size[2];
|
||||||
|
|
||||||
$availableImageType = array('.webp'=>IMAGETYPE_WEBP, '.jpg'=>IMAGETYPE_JPEG, '.png'=>IMAGETYPE_PNG, '.gif'=>IMAGETYPE_GIF);
|
$availableImageType = array('.avif'=>IMAGETYPE_AVIF, '.webp'=>IMAGETYPE_WEBP, '.jpg'=>IMAGETYPE_JPEG, '.png'=>IMAGETYPE_PNG, '.gif'=>IMAGETYPE_GIF);
|
||||||
|
|
||||||
$db = RootDB::db();
|
$db = RootDB::db();
|
||||||
$member = $db->queryFirstRow('SELECT `ID`, `PICTURE` FROM `member` WHERE `NO` = %i', $userID);
|
$member = $db->queryFirstRow('SELECT `ID`, `PICTURE` FROM `member` WHERE `NO` = %i', $userID);
|
||||||
@@ -48,7 +48,7 @@ if(!is_uploaded_file($image['tmp_name'])) {
|
|||||||
$response['result'] = false;
|
$response['result'] = false;
|
||||||
} elseif(!$newExt) {
|
} elseif(!$newExt) {
|
||||||
//확장자 검사
|
//확장자 검사
|
||||||
$response['reason'] = 'webp, jpg, gif, png 파일이 아닙니다!';
|
$response['reason'] = 'avif, webp, jpg, gif, png 파일이 아닙니다!';
|
||||||
$response['result'] = false;
|
$response['result'] = false;
|
||||||
} elseif($image['size'] > 51200) {
|
} elseif($image['size'] > 51200) {
|
||||||
//파일크기 검사
|
//파일크기 검사
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ if($action == 'scrub_icon'){
|
|||||||
|
|
||||||
$cnt = 0;
|
$cnt = 0;
|
||||||
|
|
||||||
foreach(glob(AppConf::getUserIconPathFS().'/*.{webp,jpg,png,gif}', GLOB_BRACE) as $filepath){
|
foreach(glob(AppConf::getUserIconPathFS().'/*.{avif,webp,jpg,png,gif}', GLOB_BRACE) as $filepath){
|
||||||
$filename = basename($filepath);
|
$filename = basename($filepath);
|
||||||
|
|
||||||
if (array_key_exists($filename, $usedIcon)) {
|
if (array_key_exists($filename, $usedIcon)) {
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ require(__DIR__ . '/../vendor/autoload.php');
|
|||||||
<form name="change_icon_form" id="change_icon_form" method="post" enctype="multipart/form-data">
|
<form name="change_icon_form" id="change_icon_form" method="post" enctype="multipart/form-data">
|
||||||
<input class="with_skin" type="text" readonly="readonly" id="image_upload_filename">
|
<input class="with_skin" type="text" readonly="readonly" id="image_upload_filename">
|
||||||
<button id="image_upload_fake_btn" class="with_skin">찾아보기</button>
|
<button id="image_upload_fake_btn" class="with_skin">찾아보기</button>
|
||||||
<input type="file" id="image_upload" name="image_upload" accept=".webp,.jpg,.jpeg,.png,.gif"><br>
|
<input type="file" id="image_upload" name="image_upload" accept=".avif,.webp,.jpg,.jpeg,.png,.gif"><br>
|
||||||
<input class="with_skin" id="btn_image_submit" type="submit" value="아이콘 변경"> <button id="btn_remove_icon" class="with_skin">아이콘 제거</button>
|
<input class="with_skin" id="btn_image_submit" type="submit" value="아이콘 변경"> <button id="btn_remove_icon" class="with_skin">아이콘 제거</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ require(__DIR__ . '/../vendor/autoload.php');
|
|||||||
<th class="bg1">도움말</th>
|
<th class="bg1">도움말</th>
|
||||||
<td colspan="5" style="text-align:left;padding:8px;">
|
<td colspan="5" style="text-align:left;padding:8px;">
|
||||||
<p style="line-height:1.2em;">
|
<p style="line-height:1.2em;">
|
||||||
아이콘은 64 x 64픽셀 ~ 128 x 128픽셀 사이, 50KB 이하의 webp, jpg, gif, png 파일만 가능합니다.</p>
|
아이콘은 64 x 64픽셀 ~ 128 x 128픽셀 사이, 50KB 이하의 avif, webp, jpg, gif, png 파일만 가능합니다.</p>
|
||||||
<p style="margin-top:1em;color:magenta;line-height:1.2em;">탈퇴시 1개월간 정보가 보존되며, 1개월간 재가입이 불가능합니다.</span>
|
<p style="margin-top:1em;color:magenta;line-height:1.2em;">탈퇴시 1개월간 정보가 보존되며, 1개월간 재가입이 불가능합니다.</span>
|
||||||
</p>
|
</p>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
+1
-1
@@ -176,7 +176,7 @@ module.exports = (env, argv) => {
|
|||||||
use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader', 'sass-loader']
|
use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader', 'sass-loader']
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.(png|jpe?g|gif|webp)$/,
|
test: /\.(png|jpe?g|gif|webp|avif)$/,
|
||||||
use: ['file-loader']
|
use: ['file-loader']
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user