چطور یک فایل را روی سرور آپلود کرده و در یک فولدر معین با نام دلخواهمان ذخیره کنیم؟
- نفیسه افقی 2 سال قبل سوال کرد
- شما باید برای ارسال دیدگاه وارد شوید
برای آموزش کامل آپلود فایل با multer این پست را ببینید.
multer بطور پیشفرض فایل را با نامی دیگر و بدون پسوند (extension) ذخیره می کند. برای اینکه پوشه آپلود و نام فایل را خودتان تعیین کنید، می توانید از کد زیر استفاده کنید ( در اینجا ما فایل را با پسوند خودش و با یک نام تصادفی ذخیره می کنیم):
import { ... , UseInterceptors, FileInterceptor, UploadedFile } from '@nestjs/common'
import { diskStorage } from 'multer'
import { extname } from 'path'
...
@UseInterceptors(FileInterceptor('file', {
storage: diskStorage({
destination: './uploads'
, filename: (req, file, cb) => {
// Generating a 32 random chars long string
const randomName = Array(32).fill(null).map(() => (Math.round(Math.random() * 16)).toString(16)).join('')
//Calling the callback passing the random name generated with the original extension name
cb(null, `${randomName}${extname(file.originalname)}`)
}
})
}))
async upload( @UploadedFile() file) {
console.log(file)
}
- نفیسه افقی 2 سال قبل پاسخ داد
- شما باید برای ارسال دیدگاه وارد شوید