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」では「大」、「小」、「プレビュー」などしか提供されません。
私は Media とそれに関連するモジュールを試します。これは FileField Sources の進化形であり、Drupal 7個のフィールドがありますが、同じ種類の機能のほとんどを提供します。
FileField Sources はD7に移植されており、すばらしいです。 Visual select file と呼ばれるモジュールがあまりにもあると、ニースビューベースの既存のファイルの選択にabbilitiが追加されます(画像に適しています)。
[〜#〜] imce [〜#〜] と組み合わせて IMCE for FileField (D7)を選択しました-そして、これは各ノードでそれらを複製することなく。
私が見る限り、Filefield Sourcesは常に添付ファイルを常に複製します。 Mediaが提供するインポーターもそれを行います。
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 をご覧ください。
常に[ファイルとしてNodeアプローチを使用し、Node参照フィールド+ カスタムフォーマッタ を使用して、Nodeをこれを行うには、ファイルノードを更新し、そのファイルノードのすべての参照を全面的に更新することができます。
D6では、 Node Relationships を使用してファイルライブラリを提供したり、 Formatters 4 Node Reference field を使用してノードを使用可能なFileFieldフォーマッターとしてフォーマットしたりすることもできます。
FileField SourcesはまだDrupal 7に移植されていませんが、計画されています。 drupal.orgの対応する問題 を参照してください)。