0

Im unable to send blob pdf file that comes from @react-pdf/render.

first I'm tring to convert that blob into a file using new File()

   <BlobProvider
      document={<Document />}
    >
      {({ blob, url, loading, error }) => {
        buildPdfFile(blob);
        return <div />;
      }}
    </BlobProvider>

const fileRef = useRef<File | null>(null);

const buildPdfFile = (blob: any) => {
const file = new File(
  [blob],
  `${get(resumeData, "ownerName", "")}_${get(
    resumeData,
    "ownerId",
    ""
  )}_ficha_de_inscripción.pdf`,
  {
    type: "application/pdf",
  }
);

fileRef.current = file;
console.log(fileRef.current);
};

const handleOnSubmit = () => {
  dispatch(sendPdfToServer(fileRef.current!));
};

once I got that file I'm tried to send it using formdata in a POST request with application/pdf as content-type to my nestjs app

const sendPdfToServer = (inscriptionPdf) => {

   const jwt = getJWT();

   const options = {
     headers: new Headers({
       "content-type": "application/pdf",
       Authorization: `Bearer ${jwt}`,
     }),
   };

   const formData = new FormData();
   formData.append("file", inscriptionPdf, inscriptionPdf.name);

   const path = `${url}`;

   try {
     const response = await fetch(path, {
       ...options,
       method: "POST",
       body: formData,
     });
   }
   catch (e) {
      console.log(e);
   }
}

but in the endpoint I'm using, the file is never intercepted, it shows as undefined

 @Post('sendMail')
 @UseInterceptors(
   FileInterceptor('file', {
     storage: diskStorage({
       destination: './uploads/emailsTemporalFiles',
       filename: (req, file, cb) => {
         console.log('file ->', file);
         const fileName: string = path
           .parse(file.originalname)
           .name.replace(/\s/g, '');
         const extension: string = path.parse(file.originalname).ext;

         cb(null, `${fileName}${extension}`);
       },
     }),
   }),
 )
 async sendMail(@Res() response, @UploadedFile() file) {
   this.logger.log(` | sendMail`);
   console.log(file); // it prints undefined
 }

0 Answers0