インターネットの普及に伴い、PHP をベースに Web サイトを開発することが増えていますが、PHP の開発過程では、ファイルのアップロードや画像処理など、一時ファイルが必要になることがよくあります。ただし、場合によっては、奇妙な問題が発生することがあります。つまり、コード内で move_uploaded_file() 関数を使用して、アップロードされた一時ファイルを指定されたディレクトリに移動するときに、ファイルが移動されないということです。この場合、通常は次のようなエラー メッセージが表示されます。
「警告: move_uploaded_file(/path/to/uploaded/file): ストリームを開けませんでした: /path にそのようなファイルまたはディレクトリはありません」 /to/upload/script.php (XX
行目) 警告: move_uploaded_file(): '/tmp/phpxxxx' を /path/to/upload の '/path/to/uploaded/file' に移動できません/script.php on line XX”
このエラー メッセージは、システムが移動する一時ファイルを見つけられないため、指定されたディレクトリに移動できないことを示しています。では、なぜこのようなことが起こるのでしょうか?この問題をどうやって解決すればよいでしょうか?考えられる原因と解決策をいくつか紹介します。
これは最も一般的な問題の 1 つです。 move_uploaded_file() 関数を使用してアップロードされた一時ファイルを指定したディレクトリに移動するときは、そのディレクトリが存在し、書き込み権限があることを確認する必要があります。ディレクトリが存在しない場合、PHP は存在しないディレクトリを開くことができないため、システムは「ストリームを開けませんでした」というエラーを表示します。
解決策:
指定されたアップロード ディレクトリが存在し、書き込み権限があるかどうかを確認してください。ディレクトリが存在しない場合は、手動でディレクトリを作成し、適切な権限を与える必要があります。
アップロード スクリプトにアクセスすると、PHP はアップロードされたファイルを一時ディレクトリに保存します。一時ディレクトリへのパスは通常、次のとおりです。 /tmp または /var/tmp。一時ファイルが存在しない場合は、PHP プロセスに一時ディレクトリにアクセスするための十分な権限がないか、一時ファイルが誤って削除されたことが考えられます。
解決策:
一時ディレクトリが存在し、書き込み権限があるかどうかを確認してください。ディレクトリが存在しない場合は、手動でディレクトリを作成し、適切な権限を与える必要があります。ディレクトリは存在するが書き込み権限がない場合は、chmod コマンドを使用してディレクトリの権限を変更する必要があります。ほとんどの場合、デフォルトの権限で十分です。
move_uploaded_file() 関数を呼び出すときは、ファイル名を含むファイルの完全なパスを指定する必要があります。ファイル名が不正な場合、ファイルの移動ができない場合があります。たとえば、ファイル名に不正な文字が含まれているか、ファイル名が長すぎる場合、この問題が発生する可能性があります。
解決策:
ファイル名が正当かどうかを確認し、ファイル名が不正な場合は、ファイル名を変更する必要があります。通常は、ファイル名を不正な文字を含まない適切な長さに変更するだけで済みます。
move_uploaded_file() 関数を呼び出すとき、ターゲット ファイルがすでに存在する場合、一時ファイルを指定されたディレクトリに移動することはできません。これは、move_uploaded_file() 関数では既存のファイルを上書きできないためです。
解決策:
対象のファイルが既に存在するかどうかを確認してください。存在する場合は、アップロードされたファイルを別の名前に変更するか、move_uploaded_file() 関数を実行する前に対象のファイルを手動で削除する必要があります。
他の考えられる原因をすべて排除しても一時ファイルを移動できない場合は、PHP の設定に問題がある可能性があります。構成。 。これには、open_basedir やsafe_mode などの構成オプションが関係する場合があります。
解決策:
PHP 構成項目をチェックして、これらの構成項目が正しく設定されていることを確認します。これができない場合は、Web ホスティングプロバイダーにお問い合わせください。
概要
一時ファイルを移動できないことは、PHP 開発でよくある問題の 1 つです。問題の根本原因を見つけるには、一時ディレクトリの権限、ディレクトリが存在するかどうか、一時ファイルが存在するかどうか、ファイル名が正当かどうか、ターゲットファイルがすでに存在しているかどうか、PHP 設定項目などの要素を確認する必要があります。そしてそれを解決します。これらの問題は非常に厄介ですが、根気よく解決していけば、多くの問題を回避し、PHP アプリケーションを正常に実行し続けることができます。
以上がphp一時ファイルは移動できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。