1

一時ファイルが書き込まれる場所をローテーションしたいのですが、完全な投稿が完了するまでPHPスクリプトが実行されないことを理解しています。その時までに、ファイルは、apache が生成され、php モジュールがロードされたときにロードされた構成ファイルから、デフォルトの一時的な場所に既に書き込まれています。何か案は?

4

1 に答える 1

0

あなたが言及したように、ページが実行される前にアップロードが完了するため、動的に変更することはできません。つまり、派手なini_set呼び出しを行うことはできません。

考えられる回避策:

php.iniファイルの一時的なアップロード場所をシンボリック リンク ( /tmp/myuploads) を指すように設定し、シンボリック リンクが選択したアップロード場所 ( /mnt/uploadstore_1/) のいずれかを指すようにすることができます。

次に、アップロードを処理する PHP ファイルを実行するたびに、シンボリック リンクの場所を新しい場所に変更します (基本的には ' rm /tmp/myuploads && ln -s /mnt/uploadstore_2/ /tmp/myuploads' に相当します)。

これにより、次に来るアップロードが、次に選択した場所に確実に収まるはずです。

于 2009-08-28T22:50:36.303 に答える