'use server' import fs from 'fs/promises' const CAD_FILE_PATH = 'public/cad-images' const IMAGE_FILE_PATH = 'public/plan-bg-images' const FILE_PATH = 'public/plan-images' /** * 파일 변환 & 저장 * @param {*} fileName * @param {*} data * @returns */ const convertDwgToPng = async (fileName, data) => { try { await fs.readdir(CAD_FILE_PATH) } catch { await fs.mkdir(CAD_FILE_PATH) } return await fs.writeFile(`${CAD_FILE_PATH}/${fileName}`, data, 'base64') } /** * 이미지 저장 * base64 형식으로 저장 * @param {*} title * @param {*} data * @returns */ const writeImageBase64 = async (title, data) => { // 해당 경로에 Directory 가 없다면 생성 try { await fs.readdir(IMAGE_FILE_PATH) } catch { await fs.mkdir(IMAGE_FILE_PATH) } return fs.writeFile(`${IMAGE_FILE_PATH}/${title}.png`, data, 'base64') } // /** // * 이미지 저장 // * Buffer 형식으로 저장 // * @param {*} title // * @param {*} data // * @returns // */ // const writeImageBuffer = async (file) => { // // 해당 경로에 Directory 가 없다면 생성 // try { // await fs.readdir(IMAGE_FILE_PATH) // } catch { // await fs.mkdir(IMAGE_FILE_PATH) // } // // const arrayBuffer = await fileURLToPath.arrayBuffer() // const buffer = new Uint8Array(arrayBuffer) // // return fs.writeFile(`${IMAGE_FILE_PATH}/${file.fileName}`, buffer) // } const writeImage = async (fileName, file) => { try { await fs.readdir(FILE_PATH) } catch { await fs.mkdir(FILE_PATH) } return fs.writeFile(`${FILE_PATH}/${fileName}.png`, file) } const readImage = async (fileName) => { const file = await fs.readFile(`${process.env.NEXT_PUBLIC_HOST_URL}${fileName}`) return file } const removeImage = async (fileName) => { try { await fs.rm(`${FILE_PATH}/${fileName}.png`) } catch (e) { // Error handling without console.log } } export { convertDwgToPng, writeImageBase64, writeImage, readImage, removeImage }