6
我有一個包含2個自定義字段的文件(文件)和列表(狀態)的自定義內容類型。Drupal - 在file_managed中創建條目
我可以做設置狀態值:
我要創建一個文件,該文件已經在服務器上field_file和file_managed(核心表)條目。我已經知道文件的MIME類型,大小和路徑。
實現此目的的正確方法是什麼?
我有一個包含2個自定義字段的文件(文件)和列表(狀態)的自定義內容類型。Drupal - 在file_managed中創建條目
我可以做設置狀態值:
我要創建一個文件,該文件已經在服務器上field_file和file_managed(核心表)條目。我已經知道文件的MIME類型,大小和路徑。
實現此目的的正確方法是什麼?
我將手動實例文件的對象,並使用file_save()
提交它(使用映像文件爲例):
global $user;
$file = new stdClass;
$file->uid = $user->uid;
$file->filename = 'image.png';
$file->uri = 'public://path/to/file/image.png';
$file->status = 1;
$file->filemime = 'image/png';
file_save($file);
您應該然後調用file_usage_add()
讓Drupal的知道你的模塊在一個既得利益此文件(使用nid
從$node
對象):
file_usage_add($file, 'mymodule', 'node', $node->nid);
最後,你可以將文件添加到節點:
$node->field_file[$node->language][] = array(
'fid' => $file->fid
);
希望可以幫到
謝謝,這有很大的幫助。 – djdy
它也在file_managed表中嗎? –
不,該文件通過第三方應用程序進入服務器。關於文件的信息可以通過Drupal知道的XML文件訪問。所以來自XML的數據需要放在file_managed和field_file中。 – djdy