2011-10-31 14 views
6

में प्रविष्टियां बनाना मेरे पास 2 कस्टम फ़ील्ड के साथ एक कस्टम सामग्री प्रकार है: फ़ाइल (फ़ाइल) और सूची (स्थिति)।Drupal - file_managed

मैं ऐसा करके स्थिति का मान सेट कर सकते हैं:

मैं एक फ़ाइल सर्वर पर पहले से ही है कि के लिए field_file और file_managed (कोर तालिका) के लिए प्रविष्टियों बनाना चाहते हैं। मैं पहले से ही फ़ाइल के एमआईएम प्रकार, आकार और पथ को जानता हूं।

इसे प्राप्त करने का सही तरीका क्या है?

+0

यह रूप में अच्छी तरह file_managed तालिका में है? –

+0

नहीं, फ़ाइल किसी तृतीय पक्ष एप्लिकेशन के माध्यम से सर्वर पर हो जाती है। फाइल के बारे में जानकारी एक एक्सएमएल फाइल के माध्यम से सुलभ है ड्रूपल के बारे में पता है। तो एक्सएमएल से डेटा को file_managed और field_file में रखा जाना चाहिए। – djdy

उत्तर

14

मैं फ़ाइल वस्तु मैन्युअल का दृष्टांत और 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 जानते हैं कि आपका मॉड्यूल में निहित स्वार्थ है यह बताने के लिए इस फ़ाइल (अपने $node वस्तु से nid उपयोग करते हुए):

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

अंत में आप नोड के लिए फ़ाइल जोड़ सकते हैं:

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

आशा है कि मदद करता है

+0

धन्यवाद, यह बहुत मदद करता है। – djdy

संबंधित मुद्दे