Package Exports
- @jrmc/adonis-attachment
- @jrmc/adonis-attachment/attachment_provider
- @jrmc/adonis-attachment/commands
- @jrmc/adonis-attachment/commands/main
- @jrmc/adonis-attachment/commands/make/converter
- @jrmc/adonis-attachment/controllers/attachments_controller
- @jrmc/adonis-attachment/converters/autodetect_converter
- @jrmc/adonis-attachment/converters/converter
- @jrmc/adonis-attachment/converters/document_thumbnail_converter
- @jrmc/adonis-attachment/converters/image_converter
- @jrmc/adonis-attachment/converters/pdf_thumbnail_converter
- @jrmc/adonis-attachment/converters/video_thumbnail_converter
- @jrmc/adonis-attachment/decorators
- @jrmc/adonis-attachment/providers/attachment_provider
- @jrmc/adonis-attachment/services/main
- @jrmc/adonis-attachment/services/regenerate_service
- @jrmc/adonis-attachment/types/attachment
- @jrmc/adonis-attachment/types/config
- @jrmc/adonis-attachment/types/converter
- @jrmc/adonis-attachment/types/index
- @jrmc/adonis-attachment/types/input
- @jrmc/adonis-attachment/types/lock
- @jrmc/adonis-attachment/types/metadata
- @jrmc/adonis-attachment/types/mixin
- @jrmc/adonis-attachment/types/regenerate
- @jrmc/adonis-attachment/types/service
Readme
AdonisJS attachment
This package is currently development and will replace attachment-advanced for AdonisJS 6.
Links
Project sample : adonis-starter-kit
Roadmap
- attachment file by file system
- attachment file by buffer
- attachment file by path
- attachment file by url
- attachment file by stream
- attachment file by Base64
- attachment files
- save meta data
- variantes
- images
- documents thumbnail
- videos thumbnail
- command regenerate
- command make:convert
- adonis-drive/flydrive
- jobs queue
- serialize
- attachments route
Setup
Install and configure the package:
node ace add @jrmc/adonis-attachment
Sample
Simple upload file
// app/models/user.ts
import { BaseModel } from '@adonisjs/lucid/orm'
import { compose } from '@adonisjs/core/helpers'
import { attachment, Attachmentable } from '@jrmc/adonis-attachment'
import type { Attachment } from '@jrmc/adonis-attachment/types/attachment'
class User extends compose(BaseModel, Attachmentable) {
@attachment()
declare avatar: Attachment
}
// app/controllers/users_controller.ts
import { attachmentManager } from '@jrmc/adonis-attachment'
class UsersController {
public store({ request }: HttpContext) {
const avatar = request.file('avatar')!
const user = new User()
user.avatar = await attachmentManager.createFromFile(avatar)
await user.save()
}
}
<img src="{{ await user.avatar.getUrl() }}" loading="lazy" alt="" />
Read documentation for advanced usage(thumbnail video/pdf/doc, create from buffer/base64...)