web-dev-qa-db-ja.com

file_put_contents:ストリームを開けませんでした、そのようなファイルまたはディレクトリはありません

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

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

上記のエラーメッセージは、内容をディレクトリ/files/grantapps/、これはvhostを超えますが、システム内のどこかにあります(先頭の絶対スラッシュを参照)

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

  • ディレクトリは/home/username/public_html/files/grantapps/本当に存在します。
  • ループとfile_put_contents-Statementを含む絶対パス/home/username/public_html/files/grantapps/
34

私も同じ種類の問題に巻き込まれ、簡単な手順に従います->

コピーしたいファイルの正確なURLを取得するEx->

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

また、uはPHP function->によってドキュメントルートを取得できます。

$_SERVER['DOCUMENT_ROOT']
6
Sachin

昨日この問題に出くわし、どうやってそれを解決したのかわかりませんが、ここに私が進めた方法があります。

私のパスは「/ tmp/transtel/importReleaseDisk /」で、エラーが発生しました。そのため、問題の解決を開始するために、メインの親ディレクトリにファイルを書き込んでから、さらに深くなりました。

file_put_contents("/tmp/aa.txt", "aaa");
file_put_contents("/tmp/transtel/aa.txt", "aaa");
file_put_contents("/tmp/transtel/importReleaseDisk/aa.txt", "aaa");

Idkの問題を解決した理由...

適切な権限があることを確認してください。 Phpは通常、権利がないために書くことができないが、あなたは決して知らないときにあなたに気づきます...

0