File 为什么赢了';此文件字段是否未保存在节点对象上?
通过打印,我得到:File 为什么赢了';此文件字段是否未保存在节点对象上?,file,drupal-6,filefield,File,Drupal 6,Filefield,通过打印,我得到: stdClass Object ( [field_car_image] => Array ( [0] => Array ( [filename] => HERMAN 096.jpg [filepath] => sites/default/files/HERMAN 096.jpg [filemime] =&g
stdClass Object
(
[field_car_image] => Array
(
[0] => Array
(
[filename] => HERMAN 096.jpg
[filepath] => sites/default/files/HERMAN 096.jpg
[filemime] => image/jpeg
[filesize] => 933105
[status] => 1
)
)
..... // the rest is also on here
它完美地保存了所有其他数据,而不是图像。之后:
node_object_prepare($node);
$node = node_submit($node);
node_save($node);
我在$node对象上进行打印,没有对“field\u car\u image”的引用。有人知道如何正确保存文件字段吗?文件字段数组中缺少表文件的fid(文件ID);要在drupal中正确上传文件,请确保使用文件保存上传功能
此代码显示如何将文件字段保存到节点中
$node->field_car_image = array(0=>array(
'fid'=>$fid,//get this value from the file object returned by file_save_upload
'uid'=>$uid,//user ID
'filename'=>$filename,
'filepath'=>$filepath,
'filemime'=>$filemime,
'filesize'=>$filesize,
'status'=>$status,
'timestamp'=>$timestamp,
),
);
好的,但是如果您实际上没有进行上传,那么如何使用文件保存上传功能呢?我已经把文件放在正确的位置了。我必须在files表中手动创建一个条目吗?您是否试图以编程方式创建节点对象?因为我的解决方案就是为了这个目的。我的意思是:你有一个自定义表单,ppl可以上传你的文件和其他信息。一旦他们单击save,您就可以使用传递的信息构建一个新的$node对象。如果您正在尝试实现其他目标,请更好地解释上下文:)