私はphpのreadfile関数を使用して、サーバー上のファイルの完全な直接URLを指定しています。ただし、ファイルをダウンロードする代わりにエラーが表示されるだけです(failed to open stream: No such file or directory in
)。ファイルは指定されたディレクトリにあります。ファイルのダウンロード権限が拒否されました
ダウンロードしようとしているファイルがユーザーによってアップロードされています(つまり、オーナーであると思われるhttpdプロセスと思われます)。ただし、次のコードは、ファイルを開くことができないと言う -
$full_path = $row['full_path'];
$file_name = $row['file_path'];
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Type: application/pdf');
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"".$file_name."\"");
readfile($full_path);
デフォルトのアクセス許可が755などのディレクトリに設定されたと私はここでいただきました問題を理解することができません755として、私もダウンロードしていたファイルは、アクセス権を示しています。
EDIT:サーバーはhostgatorです。
EDIT:header( "Location:$ full_path")はうまく動作するので、パスには関係しません。
EDIT:$full_path
がどのように見える - $file_path
がabc.pdf
ファイル構造のように見えながらuploads/abc.pdf
:OPに私のコメントはこの1つを解決しなかったことを見て
--root
downloader.php
---uploads
abc.pdf
をまあ:
に相談することを固定しているだろう、それは楽しいためにファイルを見つけることができないとは言いません。おそらく、使用されているパスに何か問題があります。 at 'の '$ row [' full_path '];'、 '$ row [' file_path ']'などファイル上の – Oldskool
755はそれらを実行可能にします。それを644に変更してみてください。 –
@Oldskool質問した内容を含めるように質問を編集しました。ありがとうございます。お返事ありがとうございます...ありがとう – codeomnitrix