Ant-design: ๊ตฌ์„ฑ ์š”์†Œ ์—…๋กœ๋“œ : ์ „์— ์—…๋กœ๋“œํ•˜๊ธฐ ์ „์— ๋ฌธ์ œ ํ™•์ธ

์— ๋งŒ๋“  2017๋…„ 12์›” 29์ผ  ยท  7์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ant-design/ant-design

๋ฒ„์ „

3.0.3

ํ™˜๊ฒฝ

win7, chrome63.0.3239.84

๋ณต์ œ ๋งํฌ

https://codepen.io/LynnHg/pen/YYZdRV

์žฌํ˜„ ๋‹จ๊ณ„

handleBeforeUpload (file) {
const sizeOk = file.size <1024 * 300;
const typeOk =
file.type === 'image / jpeg'||
file.type === 'image / png'||
file.type === '์ด๋ฏธ์ง€ / bmp'||
file.type === '์ด๋ฏธ์ง€ / gif';

if (!typeOk) {
  message.error('็…ง็‰‡ๆ ผๅผๆœ‰่ฏฏ๏ผ');
} else {
  if (!sizeOk) {
    message.error('็…ง็‰‡ๅคงๅฐ่ถ…่ฟ‡300K๏ผ');
  }
}

return sizeOk && typeOk;

}

๋ฌด์—‡์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๊นŒ?

์ž˜๋ชป๋œ ํ˜•์‹์œผ๋กœ ์‚ฌ์ง„์„ ์—…๋กœ๋“œํ•˜๋ฉด ํ˜•์‹์ด ์ž˜๋ชป๋˜์—ˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์ง€๋งŒ ํšจ๊ณผ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์ž˜๋ชป๋œ ํ˜•์‹์œผ๋กœ ์‚ฌ์ง„์„ ์—…๋กœ๋“œํ•˜๋ฉด ํ˜•์‹์ด ์ž˜๋ชป๋˜์—ˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์ง€๋งŒ ์ธํ„ฐํŽ˜์ด์Šค์— "ํŒŒ์ผ ์—…๋กœ๋“œ ์ค‘"์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

Inactive ๐Ÿ› Bug

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

beforeUpload (ํŒŒ์ผ) {
const maxFileSize = 2;
const isLtMax = file.size / 1024/1024 <maxFileSize;

return new Promise((resolve, reject) => {
  if(!isLtMax) {
    reject(file);
  } else {
    resolve(file);
  }
});

};
์ด๋ ‡๊ฒŒํ•˜๋ฉด ์˜ค๋ฅ˜ ํŒŒ์ผ์ด fileList์— ์ถ”๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  7 ๋Œ“๊ธ€

๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋‹น์‹ ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹น์‹ ์˜ ์ด์Šˆ / ์ฝ”๋ฉ˜ํŠธ๋ฅผ ์˜์–ด๋กœ ์“ฐ๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด๋Š” ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ท€ํ•˜๋ฅผ ๋•๊ฑฐ๋‚˜ ๊ท€ํ•˜์˜ ๋ฌธ์ œ / ์˜๊ฒฌ์œผ๋กœ๋ถ€ํ„ฐ ํ˜œํƒ์„๋ฐ›์„ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์ฐธ์กฐ : https://github.com/ant-design/ant-design/issues/4897

onChange ์˜ ์ฝœ๋ฐฑ ๋ฉ”์†Œ๋“œ์— ๋ฌธ์ œ๊ฐ€์žˆ์–ด ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. beforeUpload retrun false, file ์ฝœ๋ฐฑ์˜ onChange ๊ฐœ์ฒด๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ status ํ•ฉ๋‹ˆ๋‹ค.

Promise๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฑฐ๋ถ€๋Š” onChange ํŠธ๋ฆฌ๊ฑฐํ•˜์ง€ ์•Š์ง€๋งŒ false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค!

if (!typeOk) {
   message.error('็…ง็‰‡ๆ ผๅผๆœ‰่ฏฏ๏ผ');
   return false
} 
if (!sizeOk) {
    message.error('็…ง็‰‡ๅคงๅฐ่ถ…่ฟ‡300K๏ผ');
    return false
}
return true;

# 8020๊ณผ ์ค‘๋ณต

beforeUpload (ํŒŒ์ผ) {
const maxFileSize = 2;
const isLtMax = file.size / 1024/1024 <maxFileSize;

return new Promise((resolve, reject) => {
  if(!isLtMax) {
    reject(file);
  } else {
    resolve(file);
  }
});

};
์ด๋ ‡๊ฒŒํ•˜๋ฉด ์˜ค๋ฅ˜ ํŒŒ์ผ์ด fileList์— ์ถ”๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰