/ / "File_scan_directory" - ड्रुपल -7 का उपयोग करने के बाद फ़ाइल ऑब्जेक्ट को किसी फ़ील्ड में कैसे सहेजना है

"File_scan_directory" - ड्रुपल -7 का उपयोग करने के बाद फ़ाइल ऑब्जेक्ट को किसी फ़ील्ड में कैसे सहेजना है

मैं कुछ को स्कैन करने के लिए file_scan_directory का उपयोग करने का प्रयास करता हूंफ़ाइलें और कुछ स्थानीय पथ प्राप्त करें, और मैं चाहता हूं कि वे एक ऑब्जेक्ट बनें और db में सहेजें, इसलिए मुझे ऐसा करने के लिए file_save की आवश्यकता है। file_save एक फ़ाइल ऑब्जेक्ट को पैरामीटर के रूप में लेता है, और मैं इस प्रक्रिया को कैसे सफल मान सकता हूं?

मेरे पास कोशिश की गई file_save_upload, API doc का उल्लेख हैपैरामीटर "$ स्रोत --- सहेजने के लिए अपलोड की गई फ़ाइल की फ़ाइलपथ या यूआरआई निर्दिष्ट करने वाला एक स्ट्रिंग।"

मैं फ़ाइल चलाने के लिए फ़ाइल ऑब्जेक्ट बनाने के लिए कस्टम बनाने का भी प्रयास करता हूं, यह काम करता है, लेकिन सही ड्रुपल तरीके से यह नहीं सोचता है, क्या इसके लिए कोई समाधान होगा:

file_scan_directory-> ???? -> file_save -> field_attach_update (* फ़ाइल सहेजने के बाद नई फ़िड के साथ फ़ील्ड अपडेट करें)

इसके लिए कृपया मदद करें, बहुत-बहुत धन्यवाद!

उत्तर:

उत्तर № 1 के लिए 1

यह स्निपेट कुछ jpg फाइलों को स्कैन करेगा, db में सेव करेगा, और फाइल्स को एक फील्ड में अटैच करेगा।

function test_form(){
$node = node_load("61");
unset($node->field_image[$node->language]);

$files = file_scan_directory("public://testimport", "/^.*.(jpg|JPG)$/");

//dpm($files);

//http://drupal.org/node/889058
foreach($files as $fileobj){

$query = new EntityFieldQuery;
$result = $query
->entityCondition("entity_type", "file")
->propertyCondition("uri", $fileobj->uri)
//$query->propertyCondition("uri", "public://%", "LIKE");
->execute();

if(isset($result["file"])){
dpm($result["file"]);
$fid = reset($result["file"])->fid;
$fileobj = file_load($fid);
}else{
$fileobj->filemine = file_get_mimetype($fileobj->uri);
$fileobj = file_save($fileobj);
}

$node->field_image[$node->language][] = array(
"fid" => $fileobj->fid,
//"alt" => $node->title,
//"title" => $node->title,
"uid" => "1",
"filename" => $fileobj->filename,
"uri" => $fileobj->uri,
"filemime" => $fileobj->filemime,
"filesize"=> $fileobj->filesize,
"status" => "1",
);

}

if($node = node_submit($node)) { // Prepare node for saving
node_save($node);
echo "Node with nid " . $node->nid . " updated!n";
}
}