feat: conversion HEIC serveur via sharp (fallback fiable Chrome/Firefox)

This commit is contained in:
2026-06-09 11:24:24 +02:00
parent e3246d022e
commit c4edcb568c
4 changed files with 623 additions and 4 deletions
+28
View File
@@ -0,0 +1,28 @@
import { NextRequest, NextResponse } from 'next/server'
import { getServerSession } from 'next-auth'
import { authOptions } from '@/lib/auth'
import sharp from 'sharp'
export async function POST(req: NextRequest) {
const session = await getServerSession(authOptions)
if (!session) return NextResponse.json({ error: 'Non authentifié' }, { status: 401 })
try {
const formData = await req.formData()
const file = formData.get('file') as File | null
if (!file) return NextResponse.json({ error: 'Fichier manquant' }, { status: 400 })
const buffer = Buffer.from(await file.arrayBuffer())
const jpegBuffer = await sharp(buffer).jpeg({ quality: 92 }).toBuffer()
return new NextResponse(jpegBuffer.buffer as ArrayBuffer, {
headers: {
'Content-Type': 'image/jpeg',
'Content-Length': String(jpegBuffer.length),
},
})
} catch (err) {
const message = err instanceof Error ? err.message : 'Erreur conversion'
return NextResponse.json({ error: message }, { status: 500 })
}
}