我刚开始学习AdonisJS!我可以存储一个图像,但现在我想存储多个图像,我找不到AdonisJS上的任何例子,我怎么能做到这一点。
现在我像这样保存图像
const imageSchema = schema.create({
image: schema.file.optional({
size: '2mb',
extnames: ['jpg', 'png', 'gif'],
}),
})
const validatedData = await ctx.request.validate({ schema: imageSchema })
let tourDetailedImages: string | null = null
const image = ctx.request.file('image')
if (image) {
const imageFileName = `tour-detailed-${validatedData.image?.size}.${image.extname}`
await image.moveToDisk(`./`, {
visibility: 'public',
name: imageFileName,
})
tourDetailedImages = await Drive.getUrl(imageFileName)
}
const newImage: Partial<Image> = {
...validatedData,
image: tourDetailedImages ?? '',
}
const storedImages = await Image.create(newImage)
如何在同一时间存储10个图像?我想我需要这里的foreach,但我真的不知道如何使用它,有人能帮我这个吗?
来自文档:
当接受来自相同输入的多个文件时,可以使用请求。Files方法(复数形式)返回文件的数组实例。
import Route from '@ioc:Adonis/Core/Route'
import Application from '@ioc:Adonis/Core/Application'
Route.post('gallery', async ({ request }) => {
const images = request.files('images')
for (let image of images) {
await image.move(Application.tmpPath('uploads'))
}
})