#javascript #typescript #axios #nestjs
Вопрос:
Я хочу загрузить файл из моего собственного приложения React в конечную точку API, написанный на NestJS. Я использую адаптер fastify с пакетом fastify-multipart.
Вот как я отправляю файл в свой API:
const data = new FormData(); const file = new File([blob], "image1"); console.log(file.size); data.append("file", file); const result = await axios .post("https://myapiurl/settings/upload-avatar", data, { headers: { "Content-Type": "multipart/form-data", }, })
В приведенном выше журнале консоли выводится следующий вывод для примера .png
1210126, так что в моих глазах это означает, что файл правильный и проблема заключается в серверной части.
Это моя функция контроллера для конечной точки:
@Post('upload-avatar') async uploadAvatar(@Req() req: fastify.FastifyRequest,@Res() res: fastify.FastifyReplylt;anygt;) { const parts = req.parts(); for await (const part of parts) { if (part.file) { const buffer = await part.toBuffer(); console.log(buffer.length, buffer.byteLength) } } console.log("done"); }
Я много пробовал, но в конечном итоге всегда получается, что длина буфера равна 0, и я в основном получаю пустой файл в своем бэкэнде.