>  기사  >  백엔드 개발  >  PHP로 PDF를 다운로드하고 로컬에 저장하는 방법

PHP로 PDF를 다운로드하고 로컬에 저장하는 방법

藏色散人
藏色散人원래의
2021-05-21 09:34:002999검색

PHP 다운로드 pdf를 구현하고 로컬로 전송하는 방법: 먼저 html 페이지 코드와 script.js 코드를 생성한 다음 PDF 파일을 로컬에서 읽을 수 있는 PHP 코드를 생성하고 마지막으로 jquery 라이브러리 파일을 원격으로 다운로드합니다.

PHP로 PDF를 다운로드하고 로컬에 저장하는 방법

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP ajax는 PDF 파일을 원격으로 다운로드하여 로컬 서버에 저장합니다.

때때로 ajax를 사용하여 일부 파일을 저장하고 싶을 때가 있습니다. 특히 PDF 파일은 원격 서버에 저장되어 있으며, 이 작업을 완료하는 데 도움이 되는 프로그램을 작성해야 합니다. 이 기사에서는 PDF 파일을 원격으로 다운로드하고 로컬에 저장하는 데 도움이 되는 프로그램을 작성해야 합니다. 현지화를 위한 서버. 참고용:

html 페이지 코드는 다음과 같습니다:

<!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>

script.js 코드는 다음과 같습니다:

$(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;);
                   }
               })
            }
        });
    });
});

jquery.binarytransport.js 코드는 다음과 같습니다:

/**
 *
 * 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();
            }
        };
    }
});

Let's 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 "写入成功";
}

마지막으로 jquery 라이브러리 파일을 가져옵니다. 원격으로 다운로드한 후 로컬에서 열 수 있으며 내용은 잘못된 문자 없이 원본 파일과 정확히 동일합니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP로 PDF를 다운로드하고 로컬에 저장하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.