Drupal中的哪个函数获取文件附件路径?
修改:系统部分中上传模块提供的附件。但既然你提到可能还有另一种方法。也许我可以使用FileField模块实现目标,所以如果你能告诉我如何获得FileField模块上传的文件的直接链接,这可能也非常有帮助。
编辑2: 好的,我将从我的主要和最终目标开始:
将图像链接到一个可以使用CCK模块管理的文件。
我正在逐步完成这项工作。所以现在我编写了一个生成所需图像的代码,并将该图像添加到内容类型之一的预告片中。我找到了一种方法来在标签中扭曲我的图像,我挖出了简单的附件网址。因此,我的下一步是从简单的上传附件升级到FileFields添加的附件,并从所有PHP文档中的奇怪的HTML速度进入精美管理的CCK字段。
答案 0 :(得分:2)
假设您知道如何获取包含文件附件的节点的$node
对象,这非常简单:
$file = upload_load($node);
echo $file[1]->filepath;
其中1
是文件的索引。上传可以让您上传多个文件,因此文件2的索引为2
,依此类推。如果只有一个文件,它将始终为1
。
echo $node->field_fieldname[0]['filepath'];
其中field_filename
是您用于该字段的短名称,0
是该字段的索引。 CCK字段允许您在一个字段中包含多个值,因此0
将是第一个,1
将是第二个,等等。如果您只有一个值,它将始终为{{1} }。
注意:如果要使用格式化程序获取FileField的渲染输出,可以在节点模板中使用0
,或者如果要存储渲染的输出,你可以使用:
$field_fieldname
上传是一个令人遗憾的小模块,并且已经完全被Drupal 7中的FileField核心实现所取代。如果您可以选择使用FileField,那么您应该这样做。
答案 1 :(得分:0)
文件附件的直接链接是否显示在核心上传模块的上传文件下方?
答案 2 :(得分:0)
由于您尝试使用图像,因此应使用http://drupal.org/project/imagefield CCK模块将图像添加到指定的内容类型。之后,使用内容类型配置中的显示字段标签,您可以指定图像的显示方式(作为链接,图像,带有节点链接的图像......)在预告片和正文视图中。