Drupal Attachments(FileField)文件路径

时间:2010-09-09 14:01:21

标签: file drupal path attachment

Drupal中的哪个函数获取文件附件路径?

修改:系统部分中上传模块提供的附件。但既然你提到可能还有另一种方法。也许我可以使用FileField模块实现目标,所以如果你能告诉我如何获得FileField模块上传的文件的直接链接,这可能也非常有帮助。

编辑2: 好的,我将从我的主要和最终目标开始:

将图像链接到一个可以使用CCK模块管理的文件。

我正在逐步完成这项工作。所以现在我编写了一个生成所需图像的代码,并将该图像添加到内容类型之一的预告片中。我找到了一种方法来在标签中扭曲我的图像,我挖出了简单的附件网址。因此,我的下一步是从简单的上传附件升级到FileFields添加的附件,并从所有PHP文档中的奇怪的HTML速度进入精美管理的CCK字段。

  • 如何获取上传的FileFields文件的文件路径?
  • 为CCK模块制作自定义字段的一些简单且同时丰富的教程。

3 个答案:

答案 0 :(得分:2)

假设您知道如何获取包含文件附件的节点的$node对象,这非常简单:


上传(核心)

$file = upload_load($node);
echo $file[1]->filepath;

其中1是文件的索引。上传可以让您上传多个文件,因此文件2的索引为2,依此类推。如果只有一个文件,它将始终为1


FileField

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模块将图像添加到指定的内容类型。之后,使用内容类型配置中的显示字段标签,您可以指定图像的显示方式(作为链接,图像,带有节点链接的图像......)在预告片和正文视图中。