88 lines
1.9 KiB
JavaScript
88 lines
1.9 KiB
JavaScript
'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 }
|