33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
import { NextRequest, NextResponse } from 'next/server'
|
||
import cloudinary from '@/lib/cloudinary'
|
||
|
||
export async function POST(request: NextRequest) {
|
||
try {
|
||
const formData = await request.formData()
|
||
const file = formData.get('file') as File
|
||
|
||
if (!file) {
|
||
return NextResponse.json({ error: 'Dosya bulunamadı.' }, { status: 400 })
|
||
}
|
||
|
||
// Convert file to buffer
|
||
const arrayBuffer = await file.arrayBuffer()
|
||
const buffer = Buffer.from(arrayBuffer)
|
||
const base64 = `data:${file.type};base64,${buffer.toString('base64')}`
|
||
|
||
// Upload to Cloudinary
|
||
const result = await cloudinary.uploader.upload(base64, {
|
||
folder: 'moy-qr/products',
|
||
transformation: [
|
||
{ width: 800, height: 800, crop: 'limit' },
|
||
{ quality: 'auto', fetch_format: 'auto' }
|
||
]
|
||
})
|
||
|
||
return NextResponse.json({ url: result.secure_url })
|
||
} catch (error) {
|
||
console.error('Upload error:', error)
|
||
return NextResponse.json({ error: 'Yükleme başarısız oldu.' }, { status: 500 })
|
||
}
|
||
}
|