【问题标题】:Sending post PDF data using hidden input使用隐藏输入发送发布 PDF 数据
【发布时间】:2015-08-31 09:04:48
【问题描述】:

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

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

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

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

【问题讨论】:

  • 还有一个 max_post_size 主要限制为 8Mb。你检查了吗?
  • 我的文件大约有 2Mb
  • 尝试查看 kb (100kb) 的文件或发布您的源代码以获得更多帮助。
  • post_max_size = 64Mb 在我的服务器上

标签: php pdf post input hidden


【解决方案1】:

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); 

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 2019-12-22
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多