How to download PDF automatically using js?

前端 未结 5 1271
不知归路
不知归路 2020-12-05 15:42

My scenario is that PDF file download automatically, then user fills it and when click on submit button in PDF it connect to java servlet and save it in DB.

         


        
相关标签:
5条回答
  • 2020-12-05 15:57

    It is also possible to open the pdf link in a new window and let the browser handle the rest:

    window.open(pdfUrl, '_blank');
    

    or:

    window.open(pdfUrl);
    
    0 讨论(0)
  • 2020-12-05 15:58
    1. for second point, get a full path to pdf file into some java variable. e.g. http://www.domain.com/files/filename.pdf

    e.g. you're using php and $filepath contains pdf file path.

    so you can write javascript like to to emulate download dialog box.

    <script language="javascript">
        window.location.href = '<?php echo $filepath; ?>';
    </script
    

    Above code sends browser to pdf file by its url "http://www.domain.com/files/filename.pdf". So at last, browser will show download dialog box to where to save this file on your machine.

    0 讨论(0)
  • 2020-12-05 16:12

    Use the download attribute.

    var link = document.createElement('a');
    link.href = url;
    link.download = 'file.pdf';
    link.dispatchEvent(new MouseEvent('click'));
    
    0 讨论(0)
  • 2020-12-05 16:18
    /* Helper function */
    function download_file(fileURL, fileName) {
    // for non-IE
    if (!window.ActiveXObject) {
        var save = document.createElement('a');
        save.href = fileURL;
        save.target = '_blank';
        var filename = fileURL.substring(fileURL.lastIndexOf('/')+1);
        save.download = fileName || filename;
           if ( navigator.userAgent.toLowerCase().match(/(ipad|iphone|safari)/) && navigator.userAgent.search("Chrome") < 0) {
                document.location = save.href; 
    // window event not working here
            }else{
                var evt = new MouseEvent('click', {
                    'view': window,
                    'bubbles': true,
                    'cancelable': false
                });
                save.dispatchEvent(evt);
                (window.URL || window.webkitURL).revokeObjectURL(save.href);
            }   
    }
    
    // for IE < 11
    else if ( !! window.ActiveXObject && document.execCommand)     {
        var _window = window.open(fileURL, '_blank');
        _window.document.close();
        _window.document.execCommand('SaveAs', true, fileName || fileURL)
        _window.close();
    }
    }
    

    How to use?

    download_file(fileURL, fileName); //call function
    

    Source: convertplug.com/plus/docs/download-pdf-file-forcefully-instead-opening-browser-using-js/

    0 讨论(0)
  • 2020-12-05 16:20

    Please try this

    (function ($) {
        $(document).ready(function(){
           function validateEmail(email) {
                const re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
                return re.test(email);
               }
           
           if($('.submitclass').length){
                $('.submitclass').click(function(){
                    $email_id = $('.custom-email-field').val();
                    if (validateEmail($email_id)) {
                      var url= $(this).attr('pdf_url');
                      var link = document.createElement('a');
                      link.href = url;
                      link.download = url.split("/").pop();
                      link.dispatchEvent(new MouseEvent('click'));
                    }
                });
           }
        });
    }(jQuery));
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <form method="post">
            <div class="form-item form-type-textfield form-item-email-id form-group">
                <input placeholder="please enter email address" class="custom-email-field form-control" type="text" id="edit-email-id" name="email_id" value="" size="60" maxlength="128" required />
            </div>
            <button type="submit" class="submitclass btn btn-danger" pdf_url="https://file-examples-com.github.io/uploads/2017/10/file-sample_150kB.pdf">Submit</button>
    </form>

    Or use download attribute to tag in HTML5

    0 讨论(0)
提交回复
热议问题