में प्रोग्रामेटिक रूप से नोड्स को छवि फ़ाइलों को संलग्न करना क्या प्रोग्राम को नोड में एक छवि जोड़ना संभव है?ड्रापल 7
ड्रापल 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_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 ($ फ़ाइल,' फ़ाइल ',' नोड ', $ नोड-> निड); यह करने के दौरान भी किया जाना चाहिए। – rineez
यदि आप अब इसकी आवश्यकता नहीं है, तो आप अस्थायी फ़ाइल को मैन्युअल रूप से अनलिंक भी करना चाहेंगे। अन्यथा यह समय के साथ भंडारण स्थान का एक बड़ा अपशिष्ट बनने के लिए जमा हो जाएगा। – rineez
इस मामले में कोई अस्थायी फ़ाइल नहीं है। छवि केवल स्मृति में डाउनलोड की जा रही है, फिर अपने लक्षित गंतव्य में संग्रहीत है। – Brian
$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. ड्रापल 7
- 2. ड्रापल
- 3. प्रोग्रामेटिक रूप से, मुझे ड्रापल 7 सामग्री प्रकार चाहिए जिसमें "बॉडी" फ़ील्ड
- 4. ड्रूपल 7
- 5. ड्रूपल 7
- 6. ड्रापल वेबसाइट पर "103fm" स्क्रिप्ट क्यों दिखाई दे रही है?
- 7. ड्रापल के नोड शीर्षक में एचटीएमएल \ समृद्ध पाठ?
- 8. आईआईएस 7 पर/विंडोज 7 64 बिट
- 9. एआरएम 7 और एआरएम 7 एस
- 10. फ़्लोट: दायां आई 7 7 बग
- 11. विंडोज 7
- 12. विंडोज 7
- 13. विंडोज 7
- 14. जावा -7
- 15. विंडोज 7
- 16. जेटी 7
- 17. आईआईएस 7
- 18. विंडोज 7
- 19. आईआईएस 7
- 20. जावा 7
- 21. आईआईएस 7
- 22. विंडोज 7
- 23. टीमसिटी 7
- 24. विंडोज 7
- 25. विंडोज 7
- 26. ड्रूपल 7
- 27. आईई 7
- 28. विंडोज 7
- 29. विंडोज 7
- 30. विंडोज 7
+1। किसी भी कारण से, मुझे $ फ़ाइल सरणी में 'डिस्प्ले' => 1' भी जोड़ना पड़ा, अन्यथा मुझे एक बाधा उल्लंघन मिला कि field_doc_file_display पूर्ण था। यह एक छवि के बजाय एक फ़ाइल के लिए था, जो अंतर हो सकता है। – feedbackloop
इस विधि को सफ़ेद करने के लिए Alt या शीर्षक जोड़ने का कोई तरीका है? – Shyghar
LANGUAGE_NONE – saadlulu