1

简而言之...

我有一个 ASP.NET 脚本,它根据传递给它的参数生成 PDF。首先,我需要能够从 PHP 调用这个脚本,其次,我需要确保文件一旦发送到浏览器就不会被存储。

调用脚本

所以我的第一个问题是,如何执行.NET需要DLL'sPHP 的应用程序?我读过一些关于 PHP 的东西Component Object Model,但我有点不确定这是什么以及它是如何工作的(我在这里读过)。或者,将这个脚本编译成一个.exe并通过它调用它会更好吗?

此外,.exe通过PHP调用它时是否可以将参数传递给它?

发送文件而不存储它

生成文件后(通过.NET或通过.exe),我想将其发送到浏览器而不将其存储在服务器上。我查看了以下线程:

  1. 在 PHP 中创建一个临时文件
  2. 创建临时文件并自动删除

上面的线程可能包含正确的答案,但我不确定是否可以使用这些方法中的任何一种发送 PDF...

总结

我想编写一个实现以下目标的脚本:

  1. 使用参数调用脚本(.NET应用程序或.exe)!
  2. 将结果内容(PDF)输出到浏览器而不将其存储在服务器上

我不是要求任何人为我编写这个脚本,我只是想要一些指针让我自己编写这个:-)

将这些 PDF 存储在服务器上是没有意义的,因为它们很少会相同

4

1 回答 1

1

回答你的问题......

=>。所以我的第一个问题是,如何执行需要 PHP 中的 DLL 的 .NET 应用程序?

当然,您必须创建一个 COM 对象才能与之交互。在您编写的同一页面中,有一个示例,例如,用于打开 com 对象以进行单词交互....

<?php
// starting word
$word = new COM("word.application") or die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";

//bring it to front
$word->Visible = 1;

//open an empty document
$word->Documents->Add();

//do some weird stuff
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.doc");

//closing word
$word->Quit();

//free the object
$word = null;
?>

=>调用带有参数的脚本(.NET 应用程序或 .exe)!

您必须在可访问的路由中拥有 php 的 cli,才能像带参数的控制台一样调用它。您将把它们放在 PHP 的 argv 数组中。

=>将结果内容(PDF)输出到浏览器而不将其存储在服务器上

将正确的标题发送到浏览器类型:application/pdf,它将打开您描述的内容。喜欢这个

编码 :

    <?php
$file='/files/the.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="the.pdf"');
@readfile($file);
?>

好吧,你明白了...... :)

于 2013-06-13T11:52:56.357 回答