Initial commit
This commit is contained in:
43
app/controllers/admin/images_controller.js
Normal file
43
app/controllers/admin/images_controller.js
Normal file
@@ -0,0 +1,43 @@
|
||||
import app from '@adonisjs/core/services/app';
|
||||
import Image from '#models/image';
|
||||
import fs from 'node:fs';
|
||||
export default class ImagesController {
|
||||
async index({ view }) {
|
||||
const images = await Image.query().orderBy('created_at', 'desc');
|
||||
return view.render('admin/images/index', { images });
|
||||
}
|
||||
async store({ request, response, session }) {
|
||||
const imageFile = request.file('image', {
|
||||
size: '5mb',
|
||||
extnames: ['jpg', 'png', 'jpeg', 'webp', 'gif'],
|
||||
});
|
||||
if (!imageFile) {
|
||||
session.flashErrors({ error: 'Please upload an image file.' });
|
||||
return response.redirect().back();
|
||||
}
|
||||
if (imageFile.hasErrors) {
|
||||
session.flashErrors({ error: imageFile.errors[0].message });
|
||||
return response.redirect().back();
|
||||
}
|
||||
await imageFile.move(app.makePath('public/uploads/images'));
|
||||
await Image.create({
|
||||
filePath: `/uploads/images/${imageFile.fileName}`,
|
||||
originalName: imageFile.clientName,
|
||||
mimeType: imageFile.type + '/' + imageFile.subtype,
|
||||
size: imageFile.size,
|
||||
});
|
||||
session.flash({ success: 'Image uploaded successfully.' });
|
||||
return response.redirect().back();
|
||||
}
|
||||
async destroy({ params, response, session }) {
|
||||
const image = await Image.findOrFail(params.id);
|
||||
const absolutePath = app.makePath('public' + image.filePath);
|
||||
if (fs.existsSync(absolutePath)) {
|
||||
fs.unlinkSync(absolutePath);
|
||||
}
|
||||
await image.delete();
|
||||
session.flash({ success: 'Image deleted successfully.' });
|
||||
return response.redirect().back();
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=images_controller.js.map
|
||||
Reference in New Issue
Block a user