为什么fpdi输出不能在Drupal 7中工作,而是在D7之外工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么fpdi输出不能在Drupal 7中工作,而是在D7之外工作相关的知识,希望对你有一定的参考价值。

我正在创建一个表单来处理pdf上传的管理文件类型。我正在使用fpdi。问题是它没有从这个代码下载$pdf->Output('D');任何人都可以帮助我。简单一点,因为我也是Drupal 7的新手。

我的代码与此类似。检查他们的页面here

use setasignFpdiFpdi;
use setasignFpdiPdfReader;

require_once('fpdf/fpdf.php');
require_once('fpdi2/src/autoload.php');

$pdf = new Fpdi();

$pageCount = $pdf->setSourceFile('Fantastic-Speaker.pdf');
$pageId = $pdf->importPage(1, PdfReaderPageBoundaries::MEDIA_BOX);

$pdf->addPage();
$pdf->useImportedPage($pageId, 10, 10, 90);

$pdf->Output('D');

检查参数'D'。如果我在D7之外运行该代码,它只是按预期工作。那么也许D7阻止它下载?请帮忙。

答案

我已经通过将文件写入某个位置来修复此问题。然后发送headers()作为响应,它工作得很好。

$pdf->Output('F', '/path/to/the/file.pdf');

header("Content-type: application/pdf"); 
header('Content-Disposition: attachment; filename=download.pdf');
header("Content-Length: " . filesize('/path/to/the/file.pdf'));
header("Pragma: no-cache");
header("Expires: 0");
readfile('/path/to/the/file.pdf');

以上是关于为什么fpdi输出不能在Drupal 7中工作,而是在D7之外工作的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 XPath 查询(抓取 HTML 表)只能在 Firebug 中工作,而不能在我正在开发的应用程序中工作?

iOS 7 缩放不能在具有 AutoLayout 的 ScrollView 中工作,但在 iOS8/9 中工作

为啥 printf() 可以在内核中工作,但使用 std::cout 不能?

为啥 printf() 可以在内核中工作,但使用 std::cout 不能?

Jquery 表单提交不能在 chrome 中工作,但在 Firefox 中工作

为啥 getResourceAsStream() 可以在 IDE 中工作,但不能在 JAR 中工作?