使用隐藏输入发送帖子 PDF 数据


Sending post PDF data using hidden input

我有一个应用程序,它最终使用 js 从 img 创建 pdf。PDF 数据插入到隐藏输入中。接下来,我将pdf发送到电子邮件地址。

我在通过邮寄发送带有 pdf 数据的隐藏输入时遇到问题。

使用免费服务器时,一切正常,但在目标服务器上未收到隐藏字段。只有文本的隐藏字段工作正常。

我检查了最大文件上传数据(62M)。

HTML 代码:

    <div id="formPopUpDiv" style="display:none">    
    <form method="post" accept-charset="utf-8" name="form1">            
        <div class="formDiv">
            <div class="orderData">
                <label>Imię i nazwisko</label>
                <input type="text" id="nameTxt" name="name"/>
                <label>Numer zamówienia</label>
                <input type="text" id="orderNoTxt" name="orderNo"/>
                <label>AdresEmail</label>
                <input type="text" id="emailTxt" name="email_from"/>
                <input name="hidden_data" id='hidden_data' type="hidden"/>      
            </div>
            <div class="orderButtons">
                <input type="button" value='Wyślij' onclick="popupForm('formPopUpDiv', 300, 150, true)" id="sendButton" class="sendButton"/>
                <input type="button" value='Odrzuć' onclick="hideForm('formPopUpDiv')" id="sendButton" class="sendButtonHide"/>
            </div>
        </div>
    </form>
</div>

JS代码:

if(isValid){            
        blanket_size(windowname);
        form_window_pos(windowname, width, height);
        toggle('blanket');
        toggle(windowname);
        drawDestImage(destinationCanvasArray, false);   
        var destCanvas = document.getElementById("destCanvasElement");
        var dataPDF = destCanvas.toDataURL("image/jpeg");
        var pdf = new jsPDF();
        pdf.addImage(dataPDF, 'JPEG', 0, 0, 210, 210);//210 is A4 width in mm
        //pdf.save("download.pdf");
        var pdfUrl = pdf.getDataURLString();
        document.getElementById('hidden_data').value = pdfUrl;
        //console.log(document.getElementById('hidden_data').value);
        var fd = new FormData(document.forms["form1"]);
        var xhr = new XMLHttpRequest();
        xhr.open('POST', 'upload_data.php', true);
        xhr.upload.onprogress = function(e) {
            if (e.lengthComputable) {
                var percentComplete = (e.loaded / e.total) * 100;
                //console.log(percentComplete + '% uploaded');
            }
        };
        xhr.onload = function() {
        };
        xhr.send(fd);
    }

PHP代码:

<?php
$upload_dir = "resultImg/";
$img = $_POST['hidden_data'];
$img = str_replace('data:application/pdf;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = $upload_dir . mktime() . ".pdf";
$success = file_put_contents($file, $data);
message $success ? $file : 'Unable to save the file.';
srand((double)microtime()*1000000); 
$znacznik = md5(uniqid(rand())); 

$mojadres="pawel@sg2.pl";    
$tytul=$_POST['name']." ".$_POST['orderNo']; 
$tresclistu ="Podkładki"; 
$nadawca =$_POST['email_from']; 
$nadawca_mail=$_POST['email_from']; 
$naglowki = "From: $nadawca <$nadawca_mail>'n"; 
$naglowki .= "MIME-Version: 1.0'n"; 
$naglowki .= "Content-Type: multipart/mixed;'n"; 
$naglowki .= "'tboundary='"___$znacznik=='""; 
$x="--___$znacznik=='n"; 
$x .="Content-Type: text/plain; charset='"iso-8859-2'"'n"; 
$x .="Content-Transfer-Encoding: 8bit'n"; 
$x .="'n$tresclistu'n"; 

$plik_nazwa_tmp = $file["tmp_name"]; 
$plik_nazwa_oryginalna = $file["name"]; ;
$plik_wielkosc = $file["size"]; 
$x .="--___$znacznik=='n"; 
$x .="Content-Type: application/octet-stream; name='"attachment.pdf'"'r'n"; 
$x .="Content-Disposition: attachment;'n"; 
$x .=" filename='"$tytul'".pdf'n"; 
$x .="Content-Transfer-Encoding: base64'n'n"; 

$x .= chunk_split(base64_encode($data)); 
$x .="--___$znacznik==--'n"; 

mail($mojadres,$tytul,$x,$naglowki); 
?>