2014-06-10 20 views
0

我是我的FPDF为我的PDF处理在我的网上商店。每当用户签出时,我都希望用购物车中的所有数据生成PDF,然后将PDF上传到WordPress的媒体库中。FPDF类和WordPress的PDF上传

我已经尝试了一堆东西,但我还没有做任何工作。到目前为止,我只能通过书面PDF保存到不同的文件夹:

$pdf->Output($_SERVER['DOCUMENT_ROOT'].'/invoice/nameofinvoice.pdf', 'F'); 

我的代码如下所示:

if (! function_exists('wp_handle_upload')) require_once(ABSPATH . 'wp-admin/includes/file.php'); 
$uploadedfile = $pdf->Output('dimserPdf2014.pdf', 'F'); 
$upload_overrides = array('test_form' => false); 
$movefile = wp_handle_upload($uploadedfile, $upload_overrides); 

// die(var_dump($movefile)); 

$wp_filetype = $movefile['type']; 
$filename = $movefile['file']; 
$wp_upload_dir = wp_upload_dir(); 
$attachment = array(
    'guid' => $wp_upload_dir['url'] . '/' . basename($filename), 
    'post_mime_type' => $wp_filetype, 
    'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)), 
    'post_content' => '', 
    'post_status' => 'inherit' 
); 

// Id of attachment if needed 
$attach_id = wp_insert_attachment($attachment, $filename); 

它确实上传文件到媒体库,但文件是空的,如果我取消注释死> var_dump函数我也得到一个数组,没有说它是一个空文件。

这是脚本/类我使用: http://www.fpdf.org/ 和输出方法接受两个参数,文件名和保存/下载的方法。正如你可以在这里看到的: http://www.fpdf.org/en/doc/output.htm和我已经尝试过每一个参数,迄今没有运气。

关于为什么WordPress上传空文件而不是我的PDF的任何想法?

回答

1

我一直在做一些mPDF的工作,这是FPDF的一个(更好的记录&维护恕我直言)叉。从我在文档中可以看到的方法,Output方法不会返回任何东西,除非您通过“S”dest

此外,根据wp_handle_uploadCodex文件是在$_FILES超全局上一个项目工作。如果您在上传目录中生成PDF,则不需要它。

试试这个:

if (! function_exists ... ; 
$wp_upload_dir = wp_upload_dir(); 
$uploadedfile = trailingslashit ($wp_upload_dir['path']) . 'dimserPdf2014.pdf'; 
$pdf->Output($uploadedfile, 'F'); 

$attachment = array(
    'guid' => trailingslashit ($wp_upload_dir['url']) . basename($uploadedfile), 
    'post_mime_type' => 'application/pdf', 
    'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)), 
    'post_content' => '', 
    'post_status' => 'inherit' 
); 

// Id of attachment if needed 
$attach_id = wp_insert_attachment($attachment, $uploadedfile); 
+0

非常感谢!工作很好,我一定会考虑mPDF,它似乎比fPDF更有用:) – Dueify