견적서 첨부파일 확장자 체크 드래그&드랍도 적용

This commit is contained in:
basssy 2025-02-25 09:22:56 +09:00
parent eb751af432
commit 7ebe77c763

View File

@ -23,10 +23,16 @@ export default function EstimateFileUploader({ uploadFiles, setUploadFiles }) {
const fileList = []
let passFlag = true
const allowedFileTypes = [
'image/',
'application/pdf',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/vnd.ms-excel',
]
Array.from(e.target.files).forEach((file) => {
let fileType = file.type
//, pdf,
if (!fileType.includes('image') && !fileType.includes('pdf') && !fileType.includes('spreadsheet')) {
const fileType = file.type
if (!allowedFileTypes.some((type) => fileType.includes(type))) {
passFlag = false
} else {
fileList.push({ data: file, id: uuidv4() })
@ -34,7 +40,7 @@ export default function EstimateFileUploader({ uploadFiles, setUploadFiles }) {
})
if (!passFlag) {
swalFire({ text: getMessage('estimate.detail.fileList.extCheck'), type: 'alert' })
swalFire({ text: getMessage('estimate.detail.fileList.extCheck'), type: 'alert', icon: 'error' })
}
setUploadFiles([...uploadFiles, ...fileList])
@ -50,10 +56,17 @@ export default function EstimateFileUploader({ uploadFiles, setUploadFiles }) {
e.stopPropagation()
const fileList = []
let passFlag = true
const allowedFileTypes = [
'image/',
'application/pdf',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/vnd.ms-excel',
]
Array.from(e.dataTransfer.files).forEach((file) => {
//, pdf,
let fileType = file.type
if (!fileType.includes('image')) {
if (!allowedFileTypes.some((type) => fileType.includes(type))) {
passFlag = false
} else {
fileList.push({ data: file, id: uuidv4() })
@ -61,7 +74,7 @@ export default function EstimateFileUploader({ uploadFiles, setUploadFiles }) {
})
if (!passFlag) {
swalFire({ text: getMessage('estimate.detail.fileList.extCheck'), type: 'alert' })
swalFire({ text: getMessage('estimate.detail.fileList.extCheck'), type: 'alert', icon: 'error' })
}
setUploadFiles([...uploadFiles, ...fileList])
@ -88,16 +101,7 @@ export default function EstimateFileUploader({ uploadFiles, setUploadFiles }) {
<label className="file-upload" htmlFor="img" onClick={handleButtonClick}>
{getMessage('estimate.detail.fileList.btn')}
</label>
<input
type="file"
multiple
name="file"
id="img"
// accept="image/*"
ref={fileInputRef}
style={{ display: 'none' }}
onChange={(e) => onChangeFiles(e)}
/>
<input type="file" multiple name="file" ref={fileInputRef} style={{ display: 'none' }} onChange={(e) => onChangeFiles(e)} />
</div>
<div
className="drag-file-area"