2015-06-03 33 views
0

我使用捆綁的基本代碼生成PDF和瀏覽器輸出作品。 (控制器)Symfony - 使用PsPdfBundle保存pdf文件以上傳目錄

public function fileAction($name, Request $request) 
{ 
    $format = $this->get('request')->get('_format');  
    $em = $this->getDoctrine()->getManager(); 
    $entity = $em->getRepository('TestBundle:Kunden')->find($name); 

    return $this->render(sprintf('TestBundle:Kunden:file.%s.twig', $format), array(
    'name' => $name, 
    'entity' => $entity, 
)); 

我想將文件保存在上傳文件夾中,所以我嘗試了我在文檔或其他帖子中找到的代碼。 (控制器)

public function pdfAction($name) 
{ 
    $format = $this->get('request')->get('_format');     
    $em = $this->getDoctrine()->getManager(); 
    $entity = $em->getRepository('TestBundle:Kunden')->find($name); 
    $facade = $this->get('ps_pdf.facade'); 
    $response = new Response();       

    $this->render(sprintf('TestBundle:Kunden:file.%s.twig', $format), array('entity' => $entity,'name' => $name,), $response); 

    $xml = $response->getContent(); 
    $content = $facade->render($xml); 

    return new Response($content, 200, array('content-type' => 'application/pdf')); 
} 

我知道我錯過了什麼,但我不知道在哪裏可以定義路徑或文件名。我怎麼能保存上傳文件夾中的fileAction()生成的PDF?

回答

1

你在那裏做的只是生成一個PDF文件,並將其作爲響應/下載響應返回。 將文件保存到上傳目錄是另一項任務。我建議你使用文件抽象層,例如「Gaufrette」或「Flysystem」 不能在這裏發表一個整體的例子,因爲這將是太長了,包括所有配置的東西,但最終你會碰到這樣的:

$filesystem->write('myFile', $content); 

希望這有助於 ++。

+0

我用Gaufrette來保存我的pdf,它的工作原理。我使用pdf文件的html-Template和pdf-Template的pdf-preview生成新文件。不完全是我想要的,因爲我想從pdf-Template生成文件。但非常感謝 - 這是迄今爲止最好的解決方案。 – ReAlPeNx

+0

很高興我能幫到你。你的html-Template和pdf-Template有什麼區別?他們不都是樹枝模板嗎?我不知道你使用的軟件包,也許我錯過了一些東西。 – user3746259

+0

它們都是樹枝模板,對於preview-pdf-Template,標記是這樣的:。我使用https://github.com/psliwa/PdfBundle – ReAlPeNx