avif support

This commit is contained in:
2024-12-06 15:09:07 +00:00
parent 26327b5c8c
commit 4a70625487
7 changed files with 10 additions and 9 deletions
+1
View File
@@ -29,6 +29,7 @@ d_pic/*.jpg
d_pic/*.gif
d_pic/*.png
d_pic/*.webp
d_pic/*.avif
d_pic/uploaded_image
/dist_js
+1 -1
View File
@@ -50,7 +50,7 @@ class UploadImage extends \sammo\BaseAPI
}
$extension = ltrim($contentType, 'image/');
$validExtensions = ['png', 'jpeg', 'jpg', 'gif', 'webp'];
$validExtensions = ['png', 'jpeg', 'jpg', 'gif', 'webp', 'avif'];
if (!in_array(strtolower($extension), $validExtensions)) {
return '지원하지 않는 이미지 파일입니다: ' . $contentType;
}
+2 -2
View File
@@ -279,7 +279,7 @@
label-cols-lg="3"
content-cols-sm
content-cols-lg="7"
description="업로드할 파일을 선택해주세요. (jpg, png, gif, webp)"
description="업로드할 파일을 선택해주세요. (jpg, png, gif, webp, avif)"
label="이미지 업로드"
label-align="right"
:label-for="`${uuid}_image_upload`"
@@ -288,7 +288,7 @@
:id="`${uuid}_image_upload`"
class="form-control"
type="file"
accept=".jpg,.jpeg,.png,.gif,.webp"
accept=".jpg,.jpeg,.png,.gif,.webp,.avif"
@change="chooseImage"
/>
</BFormGroup>
+2 -2
View File
@@ -21,7 +21,7 @@ $size = getImageSize($image['tmp_name']);
$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();
$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;
} elseif(!$newExt) {
//확장자 검사
$response['reason'] = 'webp, jpg, gif, png 파일이 아닙니다!';
$response['reason'] = 'avif, webp, jpg, gif, png 파일이 아닙니다!';
$response['result'] = false;
} elseif($image['size'] > 51200) {
//파일크기 검사
+1 -1
View File
@@ -90,7 +90,7 @@ if($action == 'scrub_icon'){
$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);
if (array_key_exists($filename, $usedIcon)) {
+2 -2
View File
@@ -143,7 +143,7 @@ require(__DIR__ . '/../vendor/autoload.php');
<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">
<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>
</form>
@@ -156,7 +156,7 @@ require(__DIR__ . '/../vendor/autoload.php');
<th class="bg1">도움말</th>
<td colspan="5" style="text-align:left;padding:8px;">
<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>
</td>
+1 -1
View File
@@ -176,7 +176,7 @@ module.exports = (env, argv) => {
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']
},
{