web-dev-qa-db-ja.com

Codeigniter-アプリケーションフォルダー外の相対/絶対パスを動的に取得

私は、アプリケーションフォルダーのすぐ外に、同じレベルの一時キャッシュフォルダーを作成しようとしています。これは、イメージをオフサイトに移動する前に数秒間保存するためです。

ユーザーのFacebookプロフィール画像を取得して、サーバーに保存しようとしています。写真を撮影し、名前を変更してから保存するためにそれぞれの場所に渡す必要がある画像保存ソリューションがあります。私の考えではfile_get_contents()file_put_contents()を使用していました。それに応じてこのファイルを一時的に保存し、それを保存方法にコピー/移動できました。しかし、私はアプリケーションフォルダ内に一時ディレクトリを持ちたくない-アプリケーションとシステムフォルダと同じレベルにしたい。私の問題は、ハードコーディングせずに相対パスまたは絶対パス(アプリケーションフォルダーの同じレベル)にアクセスすることです。

_(__dir__)_、_(__file__)_、およびrealpath(APPPATH)のようなものを使用すると、アプリケーションフォルダー内でのみ結果が得られます。だから私は他の誰かがこれを達成する方法を知っていることを願っています

38
chris

の中に index.phpファイルをルートに配置し、最も有用なパスを定義して、残りのコード内で使用できるようにします。この場合、FCPATHを試しましたか?

FCPATH   -> '/'
BASEPATH -> '/system/'
APPPATH  -> '/application/'

PDATE:コメントで述べたように、上記のパスの例は概要を示すためのものです。プロジェクトのセキュリティを強化するために、BASEPATHAPPPATHFCPATHの内部ではなく、パブリックwww/rootディレクトリの外部にあります。

120
Robin Castlin