fix: 도면을 이미지로 컨버팅 후 이미지 업로드 구현

This commit is contained in:
yoosangwook 2024-11-01 17:43:15 +09:00
parent b1f16e55e3
commit b2fb166029
2 changed files with 31 additions and 3 deletions

View File

@ -19,7 +19,7 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, set
const [canvasSetting, setCanvasSetting] = useRecoilState(canvasSettingState)
const { closePopup } = usePopup()
const [basicSetting, setBasicSettings] = useRecoilState(basicSettingState)
const { refImage, setRefImage } = useRefFiles()
const { refImage, setRefImage, handleRefFile } = useRefFiles()
const { getMessage } = useMessage()
const { get, post } = useAxios()
@ -490,7 +490,7 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, set
<span className="img-edit"></span>
{getMessage('common.input.file.load')}
</label>
<input type="file" id="img_file" style={{ display: 'none' }} onChange={(e) => setRefImage(e.target.files[0])} />
<input type="file" id="img_file" style={{ display: 'none' }} onChange={(e) => handleRefFile(e.target.files[0])} />
</div>
<div className="img-name-wrap">
<input type="text" className="input-origin al-l" defaultValue={''} value={refImage ? refImage.name : ''} readOnly />

View File

@ -1,11 +1,39 @@
import { useState } from 'react'
import { convertDwgToPng } from '@/lib/cadAction'
import { useSwal } from '@/hooks/useSwal'
export default function useRefFiles() {
const [refImage, setRefImage] = useState(null)
const converterUrl = process.env.NEXT_PUBLIC_CONVERTER_API_URL
const [refImage, setRefImage] = useState(null)
const { swalFire } = useSwal()
const handleRefFile = (file) => {
setRefImage(file)
console.log('🚀 ~ handleRefFile ~ file:', file)
file.name.split('.').pop() === 'dwg' ? handleUploadRefFile(file) : () => {}
console.log("🚀 ~ handleRefFile ~ file.name.split('.').pop():", file.name.split('.').pop())
// handleUploadRefFile(file)
}
// RefFile이 캐드 도면 파일일 경우 변환하여 이미지로 저장
const handleUploadRefFile = async (file) => {
const formData = new FormData()
formData.append('file', file)
await promisePost({ url: converterUrl, data: formData })
.then((res) => {
convertDwgToPng(res.data.Files[0].FileName, res.data.Files[0].FileData)
swalFire({ text: '파일 변환 성공' })
})
.catch((err) => {
swalFire({ text: '파일 변환 실패', icon: 'error' })
})
}
return {
refImage,
setRefImage,
handleRefFile,
}
}