ν΄λΌμ΄μΈνΈ
const fileUpload = async (file: Blob) => {
const formData = new FormData();
formData.append('file', file, file.name); // νμΌ μ΄λ¦μ λͺ
μ
try {
const res = await fetch('/api/upload', {
method: 'POST',
body: formData,
});
const data = await res.json();
console.log('μλ² μλ΅:', data);
} catch (error) {
console.error('νμΌ μ
λ‘λ μ€ μ€λ₯:', error);
}
};
export default fileUpload;
μλ²(api/upload/route.ts.
import { NextRequest, NextResponse } from 'next/server';
import { writeFile } from 'fs/promises';
import { join } from 'path';
export const config = {
api: {
bodyParser: false,
},
};
export default async function handler(request: NextRequest, response: NextResponse) {
console.log('μ
λ‘λ API');
const data = await request.formData();
const file: File | null = data.get('file') as unknown as File;
if (!file) NextResponse.json({ success: false });
const bytes = await file.arrayBuffer();
const buffer = Buffer.from(bytes);
const path = join('/', 'tmp', file.name);
await writeFile(path, buffer);
console.log(`${path}}`);
NextResponse.json('μ
λ‘λ API');
}
'πνλ‘κ·Έλλ° > Next.js' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ 보] NextAuth.js Type μλ¬ μ‘κΈ° - CredentialsProvider / prisma (0) | 2024.02.07 |
---|---|
[Nextjs] api return κ° κ°±μ μλλ μ΄μ (0) | 2023.12.04 |
[nextjs] μμ νμΌ λ€μ΄λ‘λ (1) | 2023.11.27 |
[μ 보] next.js localhost:3000 μ μ λΆκ° (0) | 2023.07.22 |