ajax と Django python で JsPDF を使用して PDF 添付メールを送信する

アントニー

jspdf を ajax と django で使用して pdf 添付メールを送信することに問題があります。問題は、サーバー側のviews.py print(pdf_s) は常に「None」を再実行しますが、クライアント側のconsole.log(pdf)はバイナリ値を返します。

私が試した以下のコードを参照してください。

script.js

これはクライアント側のコードです。そして、Ajaxを使用してデータをサーバーに送信しています

function sendMail(){
    getCanvas().then(function(canvas) {
        console.log('Test');
        var img = canvas.toDataURL("image/png",0.98);
        var imgWidth = 200;
        var pageHeight = 295;
        var imgHeight = canvas.height * imgWidth / canvas.width;
        var heightLeft = imgHeight;

        var doc = new jsPDF('p', 'mm', 'a4', 'pt');
        var position = 0;

        doc.addImage(img, 'JPEG', 5, position, imgWidth, imgHeight);
        heightLeft -= pageHeight;

        while (heightLeft >= 0) {
            position = heightLeft - imgHeight;
            doc.addPage();
            doc.addImage(img, 'JPEG', 5, position, imgWidth, imgHeight);
            heightLeft -= pageHeight;
        }
        var pdf = btoa(doc.output());
        console.log(pdf);
        $.ajax({
            type:'POST',
            url:'sendmail/',
            data:{
                pdf_data: pdf,
                csrfmiddlewaretoken: csrftoken
            },
            success:function(data){
                console.log(data);
            }

        });
    });
}

views.py

def SendMail(request,scan_id):

    pdf_s = request.GET.get('pdf_data')
    print(pdf_s)
    fo = open('test.pdf','w')
    fo.write(pdf_s)
    fo.close()

    html_content = "Test Message"
    email = EmailMessage("test", html_content, "test", ["[email protected]"])
    email.content_subtype = "html"

    fd = open('test.pdf', 'r')
    email.attach('test', fd.read(), 'application/pdf')

    res = email.send()
    if res:
        status = 'Success'
    else:
        status = 'Fail'
    return HttpResponse(status)
ヴィタリー・インストルメントフ

ブラウザ開発ツール > ネットワーク経由で ajax リクエストを確認します。「pdf_data」パラメータが存在しない可能性があります。

ネイティブ js 経由でファイルを送信します。

JS

var formData = new FormData();
formData.append('file.pdf', file);
var xhr = new XMLHttpRequest();
xhr.onload = function (e) {
    if (xhr.readyState === 4 && xhr.status === 200){
        result=xhr.responseText;
        console.log(result);
    }
}
xhr.open('POST', url, true);
xhr.setRequestHeader("X-CSRFToken", csrfmiddlewaretoken);
xhr.send(formData);

パイソン

element_file=File(request.FILES[request.FILES.keys()[0]])
with open('file.pdf','wb+') as destination: 
   for chunk in element_file.chunks(): destination.write(chunk)

input type="file" を介してローカル コンピューターからファイルを送信する場合に機能します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

生成されたPDFをdjangoの添付メールとして送信するにはどうすればよいですか?

分類Dev

テンプレートを介してdjangoでPDFを管理し、電子メールの添付ファイルとして送信します

分類Dev

DjangoでPDFファイルを添付ファイルとして送信する方法

分類Dev

PDF添付ファイルでストリームとして電子メールを送信する

分類Dev

phpmailerを使用して動的添付ファイル(pdf)でメールを送信すると、pdfでエラーが返されます

分類Dev

Pythonでテーブルをメールの本文(添付ファイルではない)として送信する

分類Dev

PythonでHTML + plain_textメールを含むPDF添付ファイルを送信する

分類Dev

jsPDFを使用して生成されたPDFをasp.netc#を使用してメールに添付する方法

分類Dev

jspdfを使用してDivボーダーでPDFを作成する

分類Dev

jsPDFとcanvasを使用してPDFを生成する方法は?

分類Dev

PythonでPDFファイルをMIMEメールに添付する方法は?

分類Dev

jsPdfとHtml2Canvasを使用してHTMLページをAngularでPDFに変換します

分類Dev

jspdfとVue.jsでPDFを生成する

分類Dev

Python-HTMLメールを送信してPythonで画像を添付する方法は?

分類Dev

PythonのSendgridは、PDFの添付ファイルを電子メールで送信します

分類Dev

Python:crontabでメールを送信しているときに添付ファイルが機能しない

分類Dev

SMTPとGmailを使用してDjangoでメールを送信する

分類Dev

GoogleドキュメントをPDF添付ファイルとしてメールで送信

分類Dev

ファイルを作成するドキュメントへのS3URLを使用してDjangoメール送信者にドキュメント(pdf /画像)を添付するにはどうすればよいですか?

分類Dev

AWSSESで送信されたメールにPDFファイルを添付する

分類Dev

Pythonは、電子メールの添付ファイルとして送信するファイルを見つけることができません

分類Dev

jsPDFを使用してPDFに画像を追加しようとしています

分類Dev

Pythonで添付ファイル付きのメールを送信する

分類Dev

python-docxを使用してドキュメントを作成し、djangoを介して添付ファイルとして送信します

分類Dev

メールに添付されたPDFとしてフォームを送信する方法(Nodemailer、React、Node.js)

分類Dev

python-添付ファイルと一緒にメールを送信する

分類Dev

PDFファイルにロゴを添付してメールで送信する方法

分類Dev

Python3を使用してdjangoでPDFを作成する

分類Dev

PDFである添付ファイル付きの電子メールを送信します

Related 関連記事

  1. 1

    生成されたPDFをdjangoの添付メールとして送信するにはどうすればよいですか?

  2. 2

    テンプレートを介してdjangoでPDFを管理し、電子メールの添付ファイルとして送信します

  3. 3

    DjangoでPDFファイルを添付ファイルとして送信する方法

  4. 4

    PDF添付ファイルでストリームとして電子メールを送信する

  5. 5

    phpmailerを使用して動的添付ファイル(pdf)でメールを送信すると、pdfでエラーが返されます

  6. 6

    Pythonでテーブルをメールの本文(添付ファイルではない)として送信する

  7. 7

    PythonでHTML + plain_textメールを含むPDF添付ファイルを送信する

  8. 8

    jsPDFを使用して生成されたPDFをasp.netc#を使用してメールに添付する方法

  9. 9

    jspdfを使用してDivボーダーでPDFを作成する

  10. 10

    jsPDFとcanvasを使用してPDFを生成する方法は?

  11. 11

    PythonでPDFファイルをMIMEメールに添付する方法は?

  12. 12

    jsPdfとHtml2Canvasを使用してHTMLページをAngularでPDFに変換します

  13. 13

    jspdfとVue.jsでPDFを生成する

  14. 14

    Python-HTMLメールを送信してPythonで画像を添付する方法は?

  15. 15

    PythonのSendgridは、PDFの添付ファイルを電子メールで送信します

  16. 16

    Python:crontabでメールを送信しているときに添付ファイルが機能しない

  17. 17

    SMTPとGmailを使用してDjangoでメールを送信する

  18. 18

    GoogleドキュメントをPDF添付ファイルとしてメールで送信

  19. 19

    ファイルを作成するドキュメントへのS3URLを使用してDjangoメール送信者にドキュメント(pdf /画像)を添付するにはどうすればよいですか?

  20. 20

    AWSSESで送信されたメールにPDFファイルを添付する

  21. 21

    Pythonは、電子メールの添付ファイルとして送信するファイルを見つけることができません

  22. 22

    jsPDFを使用してPDFに画像を追加しようとしています

  23. 23

    Pythonで添付ファイル付きのメールを送信する

  24. 24

    python-docxを使用してドキュメントを作成し、djangoを介して添付ファイルとして送信します

  25. 25

    メールに添付されたPDFとしてフォームを送信する方法(Nodemailer、React、Node.js)

  26. 26

    python-添付ファイルと一緒にメールを送信する

  27. 27

    PDFファイルにロゴを添付してメールで送信する方法

  28. 28

    Python3を使用してdjangoでPDFを作成する

  29. 29

    PDFである添付ファイル付きの電子メールを送信します

ホットタグ

アーカイブ