web-dev-qa-db-ja.com

既存のサーバーファイルをファイルフィールドに添付

Drupal 7)で、ファイルフィールドの既存のファイルパスをどのように設定しますか?表示される唯一のオプションは、ファイルを再度アップロードすることです。

Drupal 6の場合 FileField Sources ではこれを行うようです。

FileField Paths または [〜#〜] imce [〜#〜] とファイルフィールドを一緒に使用すると、サーバーファイルを割り当てることができますか?
プログラムでファイルフィールドを管理するAPIはありますか?

編集
私はこれがcanがすべてメディアモジュールで行われることを発見しました。 mediaelement もインストールしています。しかし、それは完全に直感的ではないので、ここに私が取った手順があります:

メディアライブラリへのインポート:/admin/content/media/import

mediafile assetフィールドを作成します。これにより、ライブラリからアタッチできます。

表示形式(オーディオの例)は/admin/config/media/types/manage/audio/display/にあり、コンテンツタイプ「manage display」では「大」、「小」、「プレビュー」などしか提供されません。

7
brian_d

私は Media とそれに関連するモジュールを試します。これは FileField Sources の進化形であり、Drupal 7個のフィールドがありますが、同じ種類の機能のほとんどを提供します。

3
Kim Pepper

FileField Sources はD7に移植されており、すばらしいです。 Visual select file と呼ばれるモジュールがあまりにもあると、ニースビューベースの既存のファイルの選択にabbilitiが追加されます(画像に適しています)。

3
Bobík

[〜#〜] imce [〜#〜] と組み合わせて IMCE for FileField (D7)を選択しました-そして、これは各ノードでそれらを複製することなく。

私が見る限り、Filefield Sourcesは常に添付ファイルを常に複製します。 Mediaが提供するインポーターもそれを行います。

3
phils

Filefiledへのファイルの添付をお手伝いします。ただし、ファイルフィールドに添付するファイルを取得するためのオートコンプリートウィジェットを実現することは試みていません。

file_get_contents()を使用して添付するファイルを取得し、次に file_save_data を使用してDrupalに取り込むことができます。問題は、後でノードに添付できるように、追加したファイルのステータスを変更する必要があることです。そうしないと、検証エラーが発生します。

$file = file_save_data($data, $destination = NULL, $replace = FILE_EXISTS_RENAME);

db_update('file_managed')
  ->fields(array('status' => 0))
  ->condition('fid', $file->fid, '=')
  ->execute();

フォームが送信されると、管理対象ファイルのステータスに添付するファイルのfilefieldの値としてfidが自動的に更新されます。

詳細については http://api.drupal.org/api/drupal/includes--file.inc/group/file/7 をご覧ください。

2
Jepedo

常に[ファイルとしてNodeアプローチを使用し、Node参照フィールド+ カスタムフォーマッタ を使用して、Nodeをこれを行うには、ファイルノードを更新し、そのファイルノードのすべての参照を全面的に更新することができます。

D6では、 Node Relationships を使用してファイルライブラリを提供したり、 Formatters 4 Node Reference field を使用してノードを使用可能なFileFieldフォーマッターとしてフォーマットしたりすることもできます。

1
Decipher

FileField SourcesはまだDrupal 7に移植されていませんが、計画されています。 drupal.orgの対応する問題 を参照してください)。

1
Pierre Buyle