Отправить сгенерированный файл PDF в Django Rest - PullRequest
0 голосов
/ 20 июня 2019

Я сгенерировал PDF HTML,

Но как только сгенерирован pdf, я хочу отправить его по почте для этой цели, я должен отправить его django rest для бэкэнда, но не смог отсортировать, как я могу отправить его django после сгенерированного pdf.

   genPDF=(evt)=>{

    evt.preventDefault();
   html2canvas(document.getElementById("pdfid")).then(canvas=>{
       let img=canvas.toDataURL('img/png');
       let doc=new JsPDF();
       let image=doc.addImage(img,'JPEG',30,30);
       let formdata=new FormData();
       formdata.append('file');

       axios.post(`http://127.0.0.1:8000/chauffeur/pdf_upload/`,formdata);
   });

DJANGO PART:

class PdfUpload(APIView):

def get(self, request):
    return Response([PdfSerializer(file).data for file in Pdf.objects.all()])

def post(self,request):
   project_file = File(request.data.get('file'))
   print("File is",project_file)
   return Response()

Когда я пытался напечатать файл в django, он ничего не печатал, однако статус запроса 200 OK.

1 Ответ

0 голосов
/ 20 июня 2019

Метод append для formData принимает 3 параметра. name, value и filename(optional). вам не хватает value свойства, которое может быть любым Blob, например, file.

На основе jsPDF документов вы можете сделать это:

let pdf_blob = doc.output('blob');
formdata.append('file', pdf_blob);
...