15

dompdf を使用して、フォームを読みやすい .pdf ファイルに保存しようとしています。処理スクリプトは以下のとおりです。エラーが表示されますWarning: file_put_contents(/files/grantapps/NAME0.pdf) [function.file-put-contents]: failed to open stream: No such file or directory in /home/username/public_html/subdir/apps/dompdf/filename.php on line 39。(行 39 は、私の完全なスクリプトの最後の行です。) この問題を解決する方法がわかりません。

allow_url_fopenがオンになっており、完全なディレクトリ ( ) や以下のコードを含め、あらゆる種類のファイル パスを試し/home/username/public_html/subdir/files/grantapps/ましたが、何も機能しませんでした。

require_once("dompdf_config.inc.php");
date_default_timezone_set('America/Detroit');

$html = 'code and whatnot is here';

$name = str_replace(" ", "", $_POST['form2name']);
$i = 0;
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
while(file_exists("files/grantapps/" . $name . $i . ".pdf")) {
    $i++;
}
file_put_contents("files/grantapps/" . $name . $i . ".pdf", $dompdf->output());
4

2 に答える 2

38

間違いなく宛先フォルダーのパスに問題があります。

上記のエラーメッセージは、内容をディレクトリ内のファイルに配置したいという/files/grantapps/ことを示していますが、これvhostはシステムのどこかにあります(先頭の絶対スラッシュを参照してください)

再確認する必要があります:

  • ディレクトリ/home/username/public_html/files/grantapps/は本当に存在しますか。
  • ループと file_put_contents-Statement の絶対パスが含まれています/home/username/public_html/files/grantapps/
于 2013-02-09T00:49:43.893 に答える
7

私も同じ種類の問題に悩まされていたので、以下の簡単な手順に従いました。

コピー先のファイルの正確な URL を取得するだけです。次に例を示します。

http://www.test.com/test.txt (file to copy)

次に、そのファイルを書きたいファイル名で正確な絶対フォルダーパスを渡します。

  1. Windowsマシンを使用している場合 d:/xampp/htdocs/upload/test.txt

  2. Linux マシンを使用している場合 /var/www/html/upload/test.txt

ドキュメント ルートは PHP 関数 で取得できます$_SERVER['DOCUMENT_ROOT']

于 2015-02-05T08:28:29.567 に答える