是否可以通過編程方式將圖像添加到節點?在Drupal 7中以編程方式將圖像文件附加到節點上
回答
下面是使用示例代碼,你可以用node_save
$filepath = drupal_realpath('misc/druplicon.png');
// Create managed File object and associate with Image field.
$file = (object) array(
'uid' => 1,
'uri' => $filepath,
'filemime' => file_get_mimetype($filepath),
'status' => 1,
);
// We save the file to the root of the files directory.
$file = file_copy($file, 'public://');
$node->field_image[LANGUAGE_NONE][0] = (array)$file;
`
是的,當你保存它時,使它成爲$ node對象的一部分。使用node_save()保存它。
一種更簡單的方式來使用:
$filename = 'image.txt';
$image = file_get_contents('http://www.ibiblio.org/wm/paint/auth/gogh/gogh.white-house.jpg');
$file = file_save_data($image, 'public://' . $filename, FILE_EXISTS_RENAME);
$node->field_image = array(LANGUAGE_NONE => array('0' => (array)$file));
下面是我絆倒了一會兒一個額外的位:這將附加圖像到節點,如果你添加圖像,那麼你沒事。但是,如果你是更新圖像,你所關心的一個網頁上顯示的話,則()之前調用node_save需要一個額外的步驟:
image_path_flush($node->field_image['und'][0]['uri']);
這將重新生成所有的這種形象的風格。
這是對我工作:
$file_temp = file_get_contents('public://someimage.jpg');
// Saves a file to the specified destination and creates a database entry.
$file_temp = file_save_data($file_temp, 'public://' . 'someimage.jpg', FILE_EXISTS_RENAME);
$node->field_page_image = array(
'und' => array(
0 => array(
'fid' => $file_temp->fid,
'filename' => $file_temp->filename,
'filemime' => $file_temp->filemime,
'uid' => 1,
'uri' => $file_temp->uri,
'status' => 1,
'display' => 1
)
)
);
Drupal社區文檔爲此提供了稍微不同的方式。 https://www.drupal.org/node/2301425。它說'file_usage_add($ file,'file','node',$ node-> nid);'這樣做也必須完成。 – rineez 2015-04-25 07:27:41
您可能還想手動取消臨時文件的鏈接(如果不再需要)。否則隨着時間的推移,它將積累成爲存儲空間的巨大浪費。 – rineez 2015-04-25 07:40:23
這種情況下沒有臨時文件。該圖像僅被下載到內存,然後存儲在目標目標中。 – Brian 2017-11-02 16:44:55
$node->field_image[LANGUAGE_NONE][0] = (array)$file;
我試圖與一個多語種的網站。它相當失敗......但可怕。 我不得不指定有問題的語言。簡單地說,這個工作不是:
$node->field_image['en'][0] = (array)$file;
沒有它,附加的文件是在「視圖」屏幕查看,但不能在「編輯」屏幕。
這個工作對我來說:
define('DRUPAL_ROOT', $_SERVER['DOCUMENT_ROOT']);
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
$node = node_load(99);
$filename = 'image.txt';
chdir(DRUPAL_ROOT);
$image = file_get_contents('http://www.ibiblio.org/wm/paint/auth/gogh/gogh.white-house.jpg');
$file = file_save_data($image, 'public://' . $filename, FILE_EXISTS_RENAME);
$node->field_imagen_producto = array(LANGUAGE_NONE => array('0' => (array)$file));
node_save($node);
只是要在這裏貼上我的解決方案,以及,我需要建立一個新的節點,並上傳圖片編程。
$filepath = variable_get('file_public_path') . '/xmas_banner.jpg';
$file_temp = file_get_contents($filepath);
$file_temp = file_save_data($file_temp, file_default_scheme() . '://' .'xmas_banner_nl.jpg', FILE_EXISTS_RENAME);
$node = new stdClass();
$node->type = 'carousel'; // custom content type
$node->title = 'XMAS NL';
$node->field_banner_image[LANGUAGE_NONE][0] = (array) $file_temp;
$node->uid = 1;
$node->status = 0;
$node->active = 0;
$node->promote = 0;
node_save($node);
- 1. 以編程方式將圖像添加到Drupal節點
- 2. 如何以編程方式將圖像添加到Drupal節點?
- 3. 在Drupal 7中以編程方式將文件附加到節點,但文件名爲空?
- 4. 以編程方式上傳和保存文件到Drupal節點
- 5. 如何以編程方式將表單添加到Drupal 7中的節點?
- 6. 以編程方式編輯Drupal節點中的圖像
- 7. 以編程方式將視圖/塊添加到Drupal 7中的tpl.php文件中
- 8. Drupal 7 - 以編程方式向節點添加自由標記
- 9. drupal 7 - 通過代碼將文件附加到節點
- 10. 如何以編程方式在Drupal節點視圖上修改節點輸出?
- 11. Drupal 7 - 以編程方式創建節點,添加嵌入到字段的youtube
- 12. 以編程方式將圖像附加到Ellipse
- 13. Drupal 7 - 以編程方式標記節點
- 14. 以編程方式將子節點添加到xamdatatree節點
- 15. 將SimpleXMLElement保存爲Drupal 7中的xml文件節點附件
- 16. 以編程方式在android中將文本添加到圖像
- 17. 以編程方式添加節點
- 18. Drupal 7以編程方式加載配置文件2
- 19. 以編程方式將視圖添加到drupal 7中的自定義模塊
- 20. Drupal 7.使用PHP將圖像添加到節點
- 21. 使用xmlrpc將圖像添加到drupal 7節點#
- 22. 附加js文件以阻止drupaL 7?
- 23. 以編程方式定義附加點
- 24. 以編程方式將第二個進程附加到.NET上
- 25. 以編程方式將文件添加到jquery文件上傳
- 26. 以編程方式在Drupal 7中添加評論
- 27. 如何以編程方式在drupal 7中添加語言?
- 28. 如何將本地文件附加到Drupal節點
- 29. Drupal 7 - 是否可以將現有文件附加到新創建的節點上?
- 30. 以編程方式在網頁上添加可點擊圖像
+1。無論出於何種原因,我還必須在$ file數組中添加''display'=> 1',否則我得到一個約束衝突,即field_doc_file_display爲NULL。這是爲了文件而不是圖像,這可能是不同的。 – feedbackloop 2012-02-02 19:55:31
有一種方法可以將Alt或Title添加到圖像中使用此方法? – Shyghar 2013-08-07 08:50:10
+1對於LANGUAGE_NONE – saadlulu 2013-09-26 11:08:26