Maison > développement back-end > Problème PHP > Comment télécharger un pdf en php et l'enregistrer localement

Comment télécharger un pdf en php et l'enregistrer localement

藏色散人
Libérer: 2023-03-09 20:20:02
original
3046 Les gens l'ont consulté

Comment implémenter le téléchargement php du pdf et le transférer localement : créez d'abord le code de la page html et le code script.js ; puis créez le code PHP pour lire le fichier pdf localement et enfin introduisez le fichier de la bibliothèque jquery pour le téléchargement à distance ; . Peut.

Comment télécharger un pdf en php et l'enregistrer localement

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3

PHP ajax télécharge et enregistre à distance les fichiers PDF sur le serveur local

Parfois, nous souhaitons enregistrer certains fichiers PDF en utilisant ajax, surtout s'ils sont placés sur un serveur distant et stockés sur notre propre serveur. À ce stade, nous devons écrire un programme pour nous aider. Pour terminer ce travail, cet article présente PHP pour télécharger à distance des fichiers PDF et les enregistrer sur le serveur local. Les amis qui en ont besoin peuvent se référer à ce qui suit :

le code de la page html est le suivant :

.

<!DOCTYPE html>
<html>
 
<head>
    <script data-require="jquery@2.1.1" data-semver="2.1.1" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="jquery.binarytransport.js"></script>
    <script src="script.js"></script>
 
</head>
 
<body>
<button>download pdf</button>
</body>
</html>
Copier après la connexion

script. Le code js est le suivant :

$(function() {
    $("button").click(function() {
        $.ajax({
            url: "http://lch.bat.com/aa.pdf",
            type: "GET",
            dataType: &#39;binary&#39;,
            success: function(result) {
                var blob = new Blob([result], {type:"application/pdf"});
                var data = new FormData();
                data.append(&#39;file&#39;, blob);
                $.ajax({
                   type: &#39;POST&#39;,
                   url: &#39;http://lch.demo.com/read.php&#39;,
                   data: data,
                   processData: false,
                   contentType: false,
                   success: function (arg) {
                       alert(&#39;下载成功&#39;);
                   }
               })
            }
        });
    });
});
Copier après la connexion

le code jquery.binarytransport.js est le suivant :

/**
 *
 * jquery.binarytransport.js
 *
 * @description. jQuery ajax transport for making binary data type requests.
 * @version 1.0
 *
 */
 
// use this transport for "binary" data type
$.ajaxTransport("+binary", function(options, originalOptions, jqXHR){
    // check for conditions and support for blob / arraybuffer response type
    if (window.FormData && ((options.dataType && (options.dataType == &#39;binary&#39;)) || (options.data && ((window.ArrayBuffer && options.data instanceof ArrayBuffer) || (window.Blob && options.data instanceof Blob)))))
    {
        return {
            // create new XMLHttpRequest
            send: function(_, callback){
                // setup all variables
                var xhr = new XMLHttpRequest(),
                    url = options.url,
                    type = options.type,
                    // blob or arraybuffer. Default is blob
                    dataType = options.responseType || "blob",
                    data = options.data || null;
 
                xhr.addEventListener(&#39;load&#39;, function(){
                    var data = {};
                    data[options.dataType] = xhr.response;
                    // make callback and send data
                    callback(xhr.status, xhr.statusText, data, xhr.getAllResponseHeaders());
                });
 
                xhr.open(type, url, true);
                xhr.responseType = dataType;
                xhr.send(data);
            },
            abort: function(){
                jqXHR.abort();
            }
        };
    }
});
Copier après la connexion

Jetons un coup d'œil à mon code local pour la lecture. fichiers pdf :

<?php
/**
 * Created by PhpStorm.
 * User: LCA
 * Date: 2020/9/28
 * Time: 9:44
 */
//header(&#39;Access-Control-Allow-Origin: *&#39;);
// 响应类型
header(&#39;Access-Control-Allow-Methods:*&#39;);
// 响应头设置
header(&#39;Access-Control-Allow-Headers:content-type,token,id&#39;);
header("Access-Control-Request-Headers: Origin, X-Requested-With, content-Type, Accept, Authorization");
if(isset($_FILES[&#39;file&#39;])){
    $fname = "cc.pdf";
    move_uploaded_file($_FILES[&#39;file&#39;][&#39;tmp_name&#39;], "/htdocs/demo/" . $fname);
    echo "写入成功";
}
Copier après la connexion

Enfin, ajoutez la bibliothèque jquery Une fois le fichier importé et téléchargé à distance, il peut être ouvert localement et le contenu du fichier original sera exactement le même sans caractères tronqués.

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal