File upload fixes

This commit is contained in:
mrfry 2021-04-06 10:30:32 +02:00
parent cdd01b70de
commit f08079ba84
6 changed files with 178 additions and 56 deletions

View file

@ -12,11 +12,14 @@ export default {
GetDateString: GetDateString,
formatUrl: formatUrl,
deleteFile: deleteFile,
uploadFile: uploadFile,
}
import fs from 'fs'
import logger from '../utils/logger'
import { Request } from '../types/basicTypes'
interface URLFormatOptions {
pathname?: string
query?: any
@ -177,3 +180,46 @@ function deleteFile(fname: string): Boolean {
}
return false
}
function uploadFile(req: Request, path: string): Promise<any> {
return new Promise((resolve, reject) => {
try {
const file = req.files.file
// FIXME: Object.keys(req.files).forEach((file) => { saveFile() })
logger.Log('Uploading: ' + file.name, logger.GetColor('blue'))
CreatePath(path, true)
let fileName = file.name.replace(/\.+/g, '.').replace(/\/+/g, '/')
let fileDestination = path + '/' + fileName
if (FileExists(fileDestination)) {
const date = new Date()
const id = date.getHours() + date.getMinutes() + date.getSeconds()
const temp = file.name.split('.')
const extension = temp.pop()
fileName = temp.join('.') + '_' + id + '.' + extension
console.log(fileName)
fileDestination = path + '/' + fileName
}
file.mv(fileDestination, (err) => {
if (err) {
logger.Log(`Unable to upload file!`, logger.GetColor('redbg'))
console.error(err)
reject(err)
} else {
resolve({
body: req.body,
fileName: fileName,
filePath: fileDestination,
})
}
})
} catch (err) {
logger.Log(`Unable to upload file!`, logger.GetColor('redbg'))
console.error(err)
reject(err)
}
})
}