在Symfony 3 Framework上使用Mpdf(和tfox symfony包)处理PDF处理器的REST API。我创建了两个GET请求,一个没有参数用于测试,另一个有我想要读取的参数(HTML文件的URL),然后转换为PDF。REST GET参数被忽略,PHP Symfony 3 Mpdf
的通用GET功能:
/**
*
* @Rest\Get("/create")
*/
public function createPDFAction(){
$mpdfService = $this->get('tfox.mpdfport');
$html = "<h1> Hello </h1>";
$mpdf = $mpdfService->getMpdf();
$mpdf->WriteHTML($html);
$mpdf->Output();
exit;
}
与参数第二GET功能:
/**
* @param $htmlSource
* @Rest\Get("/create/{htmlSource}")
*/
public function createPDFFromSourceAction($htmlSource){
$mpdfService = $this->get('tfox.mpdfport');
$html = file_get_contents($htmlSource);
$mpdf = $mpdfService->getMpdf();
$mpdf->WriteHTML($html);
$mpdf->Output();
exit;
}
的问题是,当我打电话使用浏览器或邮差第一功能的第二功能总是返回相反,我得到PDF与“你好”,如果我删除第一个GET功能,我得到错误“没有找到GET /创建路线”
我调查:
- PDF格式的URL是正确的,我手动在第一个函数插入它和工作
- 没有语法错误,我复制了同样的功能没有参数的工作
的电话我也有:
- http://localhost:8000/create这一个工程
- http://localhost:8000/create?htmlSource=PATH-TO-FILE-LOCALLY这一个亘古不变的工作
如果我把PATH-TO-FILE-局部的功能1手动将其工作正常
所以我有2个问题:
- 由于我是新来的REST和LAMP,我应该使用GET或其他?我的目标是阅读HTML表单,用户将填入一个变量并将其传递给Mpdf,将其转换为PDF并返回该PDF以供查看或下载
- 为什么只有第一个GET函数正在被读取?
注:我正在开发在Linux上,用PHPStorm,PHP 7,Symfony的3,本地主机,我与测试的html文件是我的本地机器上
面点:如果这个解决了,我应该上传到我的客户服务器(这是Apache) - 你有任何指导如何做到这一点,应该是什么网址更改为?
谢谢大家提前
更新:
我已经改变为POST方法的功能,现在工作得很好:
/**
* @Rest\Post("/mPDF/")
*/
public function createPDFAction(Request $request){
$source = $request->get('source');
if($source == ""){
return new View('No Data found', Response::HTTP_NO_CONTENT);
}
$mpdfService = $this->get('tfox.mpdfport');
$html = file_get_contents($source);
$mpdf = $mpdfService->getMpdf();
$mpdf->WriteHTML($html);
$mpdf->Output();
exit;
}
发布到Apache生产服务器和一些后配置调整该网站现在生活! - 但现在我面临着一个新的问题,我将发布一个新的问题与所有的配置信息,我已经 - 基本POST方法返回{ "error": { "code": 405, "message": "Method Not Allowed" } }
http://www.restapitutorial.com/ – MyMomSaysIamSpecial
我从你的回答中猜测我的问题很愚蠢:如果有人能指出这个错误,D – Sherbieny
会很感谢 – Sherbieny