23

PDFファイルをユーザー指定のディレクトリに保存したい。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');

書き込もうとしているディレクトリに書き込み/読み取り権限があり、そこにあることを確認しました。まだ機能しません。

誰か助けてください...

4

9 に答える 9

47

F オプションを誤って使用しています。F は、PDF をユーザーのマシンの特定のディレクトリではなく、サーバーのローカルに保存するように設計されています。したがって、次のようなものを使用します。

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

これは、Web サーバーの public_html ディレクトリに保存されます。

于 2013-07-08T04:10:12.473 に答える
2

私自身もこれに苦労してきましたが、確実にしなければならないことが 3 つあります。そのうちの 2 つは、このトピックに関する他の投稿で言及されています。

  1. コマンド: output('F', "xyz_file");
  2. サーバーの宛先ディレクトリのアクセス許可は、エスカレートされていない特権 (つまり、drwxrwxrwx) の書き込みを許可する必要があります。
  3. コンテンツ タイプの定義: header("Content-type:application/pdf");
于 2016-08-27T00:19:50.433 に答える
1

ファイルを保存したくない場所に保存しようとしているからです。おそらく、ディレクトリのパーミッションを 777 に設定していないことが原因です。

PHP スクリプトが Web ページ (Apache によって提供されます) から実行される場合、このコードは Apache (時々 www-data と呼ばれる) ユーザーによって実行されます。

したがって、Apache ユーザーは、書き込み先のディレクトリに書き込みできる必要があります。

通常、コマンドラインから次のようなものを使用して、システムの他のユーザーに書き込み権限を付与する必要がある場合があります。

chmod o+w your_directory

ソースファイルをアップロードするために使用しているソフトウェアは、GUI を使用して行う場合、いくつかのチェックボックスでそれを行うことができるはずです。「その他」ユーザーの「書き込み」チェックボックスをオンにする必要があります。

于 2012-09-26T00:48:02.067 に答える
1

ファイルを指定したディレクトリに保存し、データベースに保存できるファイルのURLを取得するのに役立つ簡単なソリューションを次に示します。

$invoice = new phpinvoice();
...
...

$path = $_SERVER["DOCUMENT_ROOT"].'/uploads/';
$url = $_SERVER['HTTP_HOST'].'/uploads/';

$invoice->render($path.'.pdf','F');
return $url.'.pdf'; // print_r($url.'.pdf')

これが役立つことを願っています。

于 2020-07-06T12:00:26.807 に答える
0

ファイルのアップロードは試しましたか?あなたと私は同じことをしようとしていると思いますが、これはうまくいくようです。私も共有ドライブで作業しています。

http://php.net/manual/en/features.file-upload.post-method.php

于 2016-03-28T23:05:38.663 に答える
0

Apache サービスの可能性のある権限:

http://www.php.net/manual/en/function.opendir.php#87479

于 2010-12-02T21:46:50.203 に答える