1. ホーム
  2. php

[解決済み] file_put_contents: ストリームを開くのに失敗しました、そのようなファイルまたはディレクトリがありません。

2022-01-28 17:04:26

質問

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());

解決方法は?

保存先フォルダのパスに問題があることは間違いありません。

上記のエラーメッセージは、コンテンツをディレクトリ /files/grantapps/ を超えることになります。 vhost しかし、システムのどこかにあるのです(先頭の絶対スラッシュを参照)。

ダブルチェックする必要があります。

  • ディレクトリは /home/username/public_html/files/grantapps/ は本当に存在するのでしょうか。
  • ループとfile_put_contents-statementの絶対パスが含まれます。 /home/username/public_html/files/grantapps/