我正在研究一个项目,该项目使用ajax调用生成网站内容作为word文档或pdf文件供用户下载 - 下面发布了一个简化的演示。
<?php
$errors = array(); // array to hold validation errors
$data = array(); // array to pass back data
// initiate array and populate only checked values
$arr = json_decode($_POST['txtComments']);
$filetype = $_POST['filetype'];
if (!empty($errors)) {
$data['success'] = false;
$data['errors'] = $errors;
} else {
$filepath = makePDF($arr);
// check that the file has been created here....
$data['success'] = true;
$data['filename'] = $filepath;
}
// return all our data to an AJAX call
echo json_encode($data);
//Generate PDF file
function makePDF($comments)
{
require_once('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial', 'B', 16);
$pdf->Write(5, "Hello, World!\n\n\n");
// Save File
$file = "../tmp/" . uniqid('comments_') . ".pdf";
$pdf->Output($file, 'F');
// Should check that file has been created successfully here....
return ($file);
}
?>
我的问题是,在创建文件时出现问题的可能性很小,如何在返回success: path_to_file
或error: error_msg
之前检查文件是否已创建?同样值得注意的是,文件不是即时创建的 - 它需要一秒左右才能出现在服务器上,所以我认为这个延迟也需要考虑在内。
任何建议,一如既往,表示赞赏。
答案 0 :(得分:2)
您可以使用file_exists(filepath)
PHP函数。此功能允许您检查文件或目录是否存在,并相应地输出true
或false
。