2009-07-08 3 views
0

Я новая пчела для гибки. То, что я пытаюсь сделать, - это сгенерировать и сохранить дизайн макета, который ничто, кроме холста, в формате pdf на сервере. В настоящее время я могу отобразить pdf в браузере (см. Функцию ниже :), но не могу сохранить файл на сервере.Проблема с Flex при сохранении PDF-файла на сервере

private function continueToPdf():void{ 
      myPDF = new PDF( Orientation.LANDSCAPE, Unit.MM, Size.A4); 
      myPDF.setDisplayMode (Display.FULL_WIDTH); 
      myPDF.addPage(); 
      myPDF.addImage(layout_cnv); 
      myPDF.save(Method.REMOTE, "http://flexindia.org/designtool/upload/create.php",Download.INLINE ,"drawing.pdf"); 
    } 

где layout_cnv является canvas.Also я использую AlivePDF.swc lbrary для этого. Файл PHP на сервере create.php

    <?php 
       $method = $_GET['method']; 
       $name = $_GET['name']; 

       if (isset ($GLOBALS["HTTP_RAW_POST_DATA"])) { 

// get bytearray 
$pdf = $GLOBALS["HTTP_RAW_POST_DATA"]; 

// add headers for download dialog-box 
header('Content-Type: application/pdf'); 
header('Content-Length: '.strlen($pdf)); 
header('Content-disposition:'.$method.'; filename="'.$name.'"'); 
echo $pdf; 

    } else echo 'An error occured.'; 

      ?> 

Может кто-то мне помочь, пожалуйста.

+0

Кто-то пожалуйста, помогите , –

+0

Я в замешательстве. Сторона клиента гибкая, серверная сторона - php. Кому нужно сохранить pdf-файл, клиент или сервер? –

+0

требуется сохранить только на стороне сервера. –

ответ

0

Наконец, через несколько дней я обнаружил решение проблемы. Здесь для сохранения файла локально на сервере я просто нужно сделать некоторые изменения в следующей функции, как:

 private function continueToPdf():void{ 
        myPDF = new PDF( Orientation.LANDSCAPE, Unit.MM, Size.A4); 
        myPDF.setDisplayMode (Display.FULL_WIDTH); 
        myPDF.addPage(); 
        myPDF.addImage(layout_cnv); 
        myPDF.save(Method.REMOTE, "create.php",Download.INLINE ,"drawing.pdf"); 
       } 

Где create.php это серверный скрипт определяется следующим образом:

 <?php 

     $fp = fopen('upload/drawing.pdf', 'wb'); 
     fwrite($fp, $GLOBALS['HTTP_RAW_POST_DATA' ]); 
     fclose($fp); 
     ?> 

    cheers :-) !!!