我正在尝试将一个大/长字符串,一个从磁盘读取的PDF二进制文件传递到Java应用程序中,到目前为止几乎没有成功。当我从本地磁盘读取文件时,该应用程序工作,所以我知道问题与我如何导入数据有关。大致这就是我所看到的:
我正在阅读,在PHP中操作pdf并使用exec();要触摸Java应用程序,这就是我使用Java的地方:
使用:
File input = new File("C:\\Users\\Jack\\Downloads\\col_terror.pdf");
document = PDDocument.load(input);
不起作用: PHP:
exec("/path/to/jar/java -jar JavaAppHere.jar $pdf_string",$ouput);
爪哇:
public static void main(String[] args) throws Exception {
...
document = PDDocument.load( args[0] );
...
}
我觉得这很简单我不理解将字符串作为args传递,尽管自从我进入Java之后已经有几年了。
答案 0 :(得分:0)
请阅读PDDocument的Javadoc。如果PDDocument引用PDDocument,您可以看到在PDDocument.load(java.lang.String)期望文件名时传递数据。 您似乎也不使用escapeshellarg()
编码$ pdf_string由于在将二进制数据作为shell参数传递时调用的变量太多,我建议不要这样做。 最简单的解决方案是将PDF写入临时文件并将文件名传递给java。另一种方法是通过stdin传递PDF数据。