2010-12-02 53 views
13

我想將PDF文件保存到用戶指定的目錄中。我正在使用FPDF。並且代碼如下:使用FPDF將文件保存到預先指定的目錄中

<?php 
//echo "<meta http-equiv=\"refresh\" content=\"0;url=http://www.train2invest.net/useradmin/atest_Khan.php\">"; 
require('fpdf.php'); 

//create a FPDF object 
$pdf=new FPDF(); 

//set font for the entire document 
$pdf->SetFont('times','',12); 
$pdf->SetTextColor(50,60,100); 

//set up a page 
$pdf->AddPage('P'); 
$pdf->SetDisplayMode(real,'default'); 

//Set x and y position for the main text, reduce font size and write content 
$pdf->SetXY (10,60); 
$pdf->SetFontSize(12); 
$pdf->Write(5,'Dear Ms.XYX'); 

$filename="test.pdf"; 
//Output the document 
$dir = "/G:/PDF/test.pdf/"; // full path like C:/xampp/htdocs/file/file/ 
$pdf->Output($dir.$filename,'F'); 
?> 

現在,即使我把"G:\PDF\"的文件名不保存它!我試過以下內容:

$filename="G:\PDF\test.pdf"; 
$pdf->Output($filename.'.pdf','F'); 


$filename="G:\\PDF\\test.pdf"; 
$pdf->Output($filename.'.pdf','F'); 

$filename="G:/PDF/test.pdf"; 
$pdf->Output($filename.'.pdf','F'); 


$filename="/G:/PDF/test.pdf/"; 
$pdf->Output($filename.'.pdf','F'); 

我檢查了我想寫的目錄有寫入/讀取權限,它在那裏。它仍然行不通!

請幫助別人......

+0

使用格式化`代碼塊`它很難讀取你的問題和`php`標籤以獲得正確的人的注意力 – Ish 2010-12-02 21:02:39

+0

你有沒有嘗試過將它輸出到瀏覽器以查看`Output()`例程是否工作所有?將'F'切換到'D'來嘗試。 – Orbling 2010-12-02 21:40:21

回答

1

它,因爲你要保存文件的地方它不想要你。很可能是因爲你沒有將目錄的權限設置爲777.

如果你的PHP腳本是從一個web頁面(由Apache提供的)執行的,那麼這個代碼將由Apache執行(有時稱爲www-data)用戶。

因此,您的Apache用戶需要能夠寫入您嘗試寫入的目錄。

通常情況下,你可能得給寫權限到系統的其他用戶,使用這樣的事情從一個命令行:

文件模式Ø+ W your_directory

該軟件你使用上傳你的源文件,如果使用GUI這樣做,應該允許你用一些chekbox來做 - 你需要檢查「其他」用戶的「寫」複選框。

29

您正在錯誤地使用F選項,F旨在將本地PDF保存在服務器上,而不是在用戶計算機上的特定目錄中。所以,你會使用類似:

$filename="/home/user/public_html/test.pdf"; 
$pdf->Output($filename,'F'); 

這將保存在你的網絡服務器的public_html目錄

0

已經掙扎,這一點我自己,有三件事人們必須確保,其中兩個在其他職位都提到這個話題:

  1. 命令:輸出(「xyz_file」 F);
  2. 服務器目標目錄上的權限需要允許寫入非升級權限(即,drwxrwxrwx)
  3. 內容類型的定義:header(「Content-type:application/pdf」);
相關問題