drupal 7のデフォルトのファイルアップロードディレクトリを取得する方法は?


21

drupalから直接アップロードを取得するのに問題があります。相対パスまたは絶対パスを返す関数はありますか?


1
フォルダーの競合を避けるためpublic://private://、ラッパー(、など)の使用を検討してください
。Drupal7を

私はこれがimage_style_url(uri)で動作することを知っていますが、さらに処理するための変数としてjavascriptに渡したいと思います...ありがとうございます
-Jurudocs

回答:


24

この情報は、Drupalの変数テーブルに保存されます。variable_get関数を使用してこの情報を取得し、正しい変数の名前を渡します。

  • 公開ファイルシステムの場所variable_get('file_public_path', conf_path() . '/files');
  • プライベートファイルシステムの場所variable_get('file_private_path');

一時的なアップロードディレクトリを使用するvariable_get('file_temporary_path');場合システム固有のアップロードディレクトリを決定する場合は、実際のサイト構成に関係なく、file_directory_temp関数を使用します。

variable_get('file_public_path', conf_path() . '/files'); サイト管理者によって変更または明示的に設定されていない場合、デフォルトのパスを取得します。


うーん、私の場合variable_get( 'file_public_path')は空です...フック内などで呼び出す必要がありますか?
Jurudocs

1
@Jurudocs代わりにこれを使用します。variable_get('file_public_path', conf_path() . '/files');基本的に、サイト管理者によって変更または明示的に設定されていない場合、デフォルトのパスを取得します。
9ee1

@zhilevanそのディレクトリのファイル許可を確認してください。
アトモックス14年

これは、絶対パスよりも有用性が低いと思われる相対パスのみを提供します。私はdrupal_realpath以下のソリューションが好きです。もっと合法らしい。
アレックスFinnarn

11

絶対ファイルシステムパスを取得するには、次の代わりにdrupal_realpath (Drupal API)を使用しますfile_create_url

drupal_realpath('public://'); 
// returns e.g. /var/www/drupal/sites/default/files

drupal_realpath('private://');
// returns e.g. /var/www/drupal/sites/default/files_private

3

これらの関数を使用して、相対URIから有効なURLを取得することもできます。

file_create_url('public://');
file_create_url('private://');

パブリックまたはプライベートフォルダへのパスを返します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.