skip to Main Content

I want to upload a pdf from jspdf to my server.
I use Ajax for it.

I open the Javascript by a function in my form.

onsubmit="pdferzeugen();"

above the ajax code i create the pdf by "jspdf" and save it to a datauri (base64).

Javascript:

var datauri = pdf.output('datauri');
var data = new FormData();
data.append("pdf_data", datauri);
    
$.ajax({
    url: "./uploads/upload.php",
    type: "POST",
    processData: false,
    contentType: false,
    data: data,
});

upload.php:

if(!empty($_POST['pdf_data'])){
    $data = $_POST['pdf_data'];
    $fname = "test.pdf"; // name the file
    $file = fopen("./uploads/" .$fname, 'w'); // open the file path
    fwrite($file, $data); //save data
    fclose($file);
}

But this isnt working for me.
Chrome always say:

jquery.min.js:9600 XHR failed loading: POST "http://app-her-visitor/begehung/uploads/upload.php".

I searched whole google for this error, but no success.
I hope you can help me 🙂

Thanks for help

Greetings

2

Answers


  1. Chosen as BEST ANSWER

    The answer was i refreshed the page after submitting the form and send the base64 Data to my server.

    I need to prevent it from refreshing page so it will successfully send the data.

    HTML

    onsubmit="pdferzeugen();return false"
    

    Javascript

    var datauri = pdf.output('dataurl');
    
    $.ajax({
        url: "./uploads/upload.php",
        type: "POST",
        data: { pdf: datauri },
        success: function(data) {},
    });
    

    PHP

    $pdf = str_replace('data:application/pdf;base64,', '', $_POST['pdf']);
    $pdf_decoded = base64_decode ($pdf);
    $pdf = fopen ('Begehungsprotokoll.pdf','w');
    fwrite ($pdf,$pdf_decoded);
    fclose ($pdf);
    

    The return false in the onsubmit will prevent it from reload the page and now the pdf upload to my server.


  2. The issue is between the data you are sending. Verify your data before sending it through ajax because the data type should be:

    1. PlainObject or String or Array & success method must have at least one argument
    2. Type: Function( Anything data, String textStatus, jqXHR jqXHR )

    Good Luck.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search