1. ํ๋ก์ ํธ์ ์ฌ์ฉ์๊ฐ ๋์์ ์ ๋ก๋๋ฅผ ํ๋ ค๋ฉฐ ๋ฐฑ์๋์ ์๋ก ๋์์ ํฌ๊ธฐ๋ฅผ 200๋ฉ๊ฐ๋ก ์ ํ ํ ์ ์๋๋ก ํ๊ธฐ๋ก ํ์์.
2. ํผ๋ฐ์ดํฐ๋ฅผ ํฌ์คํธ๋ก ๋ณด๋ด๋๋ฐ, ๋ฑ๋ก๋ฒํผ์ ๋๋ ์๋ 200๋ฉ๊ฐ๊ฐ ๋์ผ๋ฉด ์๋ฟ์ผ๋ก ์๋ ค์ค ์ ์๋๋ก ์ฝ๋๋ฅผ ์ง๋ด.
3. ์ฝ์์ฐ์ด๋ด๊ฐ๋ฉฐ ํ์ผ ์ฌ์ด์ฆ๊ฐ ํฌ๋ก๋ฐ์ดํธ๋ก ๋์จ๋ค๋ ๊ฑธ ํ์ธํ๊ณ , 200๋ฉ๊ฐ๋ฅผ ํฌ๋ก๋ฐ์ดํธ๋ก ๋ฐ๊พธ๊ณ maxFileSize๋ก ์ ์ธํด์ค ๋ค์ ๋น๋์ค์ ์ฌ์ด์ฆ๊ฐ maxFileSize๋ณด๋ค ํด ๊ฒฝ์ฐ ์๋ฟ์ฐฝ์ผ๋ก ์๋ ค์ค. (๋ฑ๋ก๋ถ๊ฐ)
// ๋์์ 200MB ํฌ๊ธฐ ์ ํ
const [errorMsg, setErrorMsg] = useState(false);
const [isSuccess, setIsSuccess] = useState(false);
const validateSelectedFile = (e) => {
const maxFileSize = 204800; // 200MB
const fileSizeKiloBytes = videos.size / 1024;
if (fileSizeKiloBytes > maxFileSize) {
setErrorMsg(
//200๋ฉ๊ฐ ๋์ ์๋ฟ๋์ฐ๊ธฐ ๋ ์ค์2๋ก ๋์ฐ๊ธฐํด๋
Swal.fire({
icon: "error",
text: "์
๋ก๋ ๊ฐ๋ฅํ ์ฉ๋(200MB)์ ์ด๊ณผํ์์ต๋๋ค. ๋ค์ ์ ํํด ์ฃผ์ธ์.",
confirmButtonColor: "#47AFDB",
confirmButtonText: "ํ์ธ",
}).then((result) => {
if (result.isConfirmed) {
window.location.reload();
}
})
);
setIsSuccess(false);
return;
}
setErrorMsg("");
setIsSuccess(true);
};
<form onSubmit={onSubmitHandler}>
<div className="AddVideo">
<div className="btn-container">
<input
accept="video/*"
name="videos"
type="file"
/>
<div className="btn">
<img src={video} alt="์์์ ์
๋ก๋ ํด์ฃผ์ธ์." />
</div>
</div>
<div className="error-message">{errorMsg}</div>
</div>
<div className="videoAddbuttons">
//๋ฒํผํด๋ฆญ์ ์จํด๋ฆญ์ด๋ฒคํธ๋ก ํ์ธํด์ฃผ๊ธฐ~
<button
className="videoAdd"
type="submit"
onClick={validateSelectedFile}>
<img src={addVideo} alt="์์๋ฑ๋ก" />
</button>
</div>
</form>
'FA > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
20221103 React - ๊ฐ์๋ (Virtual DOM) (0) | 2022.11.03 |
---|---|
20221102 React Hooks - useMemo, useCallback (0) | 2022.11.02 |
20221008 video ์ฌ์ฉํ๊ธฐ (0) | 2022.10.08 |
20221006 react JSX์์ for์ค๋ฅ (0) | 2022.10.06 |
20221005 React Hooks - useContext (0) | 2022.10.05 |