我不久前发布了有关此问题的文章,我以为我已经知道了,但是什么也没有发生。 问题:我正在尝试生成捕获客户端签名的PDF文件。从本质上讲,它们在框中输入名称,该名称会与所有其他信息(例如日期,条款和条件等)一起显示在pdf.php文件中。 我创建了一个从FPDF扩展的类,尽管使用JavaScript,但我正在发送要填充的名称,并通过该pdf.php文件对其进行处理,并且应该返回“已签名”的pdf文件。 但是,我的pdf文件没有下载,保存或任何选项(I,D,F,S)。 以下是我的代码中该部分的摘要。
pdf.php
Time.scheduledTimer()
.js文件(JSON)
$tempDir = "C:/PHP/temp/";
$thisaction = filter_input(INPUT_POST, 'action', FILTER_SANITIZE_STRING);
$answers = filter_input(INPUT_POST, 'encFormData');
$decFD = json_decode($answers);
$pdf = new WaiverFPDF();
// Pull values from array
$returnVals = array();
$returnVals['result'];
$returnVals['html'] = '';
$returnVals['errorMsg'] = '';
//the name of the person who signed the waiver
$name = $decFD->signWaiver;
$today = date('m/d/Y');
if($thisaction == 'waiverName'){
// Generate a new PDF
$pdf = new WaiverFPDF();
$pdf->AddPage()
$pdfFile = "Waiver". $name . ".pdf";
....
// Output form
$pdf->Write(8, 'I HEREBY ASSUME ALL OF THE RISKS...');
// Line Break
$pdf-> all other info...
$outFile = $tempDir . $pdfFile;
//output pdf
$pdf->Output('D', $pdfFile);
$returnVals['result'] = true;
}
else{
$returnVals['errorMsg'] = "There was an error in waiver.php";
$returnVals['result'] = false;
}
echo json_encode($returnVals);
?>
我知道我的错误处理非常简单,但是我得到的只是成功消息,但没有生成pdf文件...我不确定我在做什么错。我还确保文件(当我保存到文件时)是可写的。 class_WaiverFPDF.php
function sendWaiver(){
var formHash = new Hash();
formHash.signWaiver = $('signWaiver').get('value');
console.log ("name being encoded");
waiverNameRequest.setOptions({
data : {
'encFormData' : JSON.encode(formHash)
}
}).send();
return true;
}
waiverNameRequest = new Request.JSON({
method : 'post',
async : false,
url : 'pdf.php',
data : {
'action' : 'waiverName',
'encFormData' : ''
},
onRequest : function() {
// $('messageDiv').set('html', 'processing...');
console.log("waiver onRequest");
},
onSuccess : function(response) {
$('messageDiv').set('html', 'PDF has been downloaded');
if (response.result == true) {
console.log('OnSuccess PDF created');
} else {
$('messageDiv').set('html', response.errorMsg);
console.log('PDF error');
}
}
});