2011-10-31 20 views
6

Tôi có loại nội dung tùy chỉnh với 2 trường tùy chỉnh: tệp (tệp) và danh sách (trạng thái).Drupal - tạo mục nhập trong file_managed

tôi có thể thiết lập giá trị của trạng thái bằng cách thực hiện:

Tôi muốn tạo mục cho field_file và file_managed (bảng lõi) cho một tập tin đó là ĐÃ trên máy chủ. Tôi đã biết loại MIME, kích thước và đường dẫn của tệp.

Cách thích hợp để đạt được điều này là gì?

+0

cũng có trong bảng tệp không? –

+0

Không, tệp sẽ được tải lên máy chủ thông qua ứng dụng của bên thứ 3. Thông tin về tệp có thể truy cập được thông qua tệp XML mà Drupal biết. Vì vậy, dữ liệu từ XML cần phải được đưa vào file_managed AND field_file. – djdy

Trả lời

14

tôi sẽ nhanh chóng các đối tượng tập tin bằng tay và sử dụng file_save() cam kết nó (sử dụng một tập tin hình ảnh như một ví dụ):

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); 

Sau đó, bạn nên gọi file_usage_add() để cho Drupal biết mô-đun của bạn có quyền lợi trong việc file này (bằng cách sử dụng nid từ đối tượng $node của bạn):

file_usage_add($file, 'mymodule', 'node', $node->nid); 

Cuối cùng bạn có thể thêm các tập tin đến nút:

$node->field_file[$node->language][] = array(
    'fid' => $file->fid 
); 

Hy vọng rằng sẽ giúp

+0

Cảm ơn bạn, điều đó giúp ích rất nhiều. – djdy

Các vấn đề liên quan