老葛的Drupal培训班 Think in Drupal
文件API位于includes/file.inc中。在本节中,我们将介绍一些常用函数。更多的详细,感兴趣的读者可直接通过API文档学习当前的文件API http://api.drupal.org/api/6/group/file/6。
数据库模式
尽管Drupal将文件存放在磁盘上,但它仍然使用数据库来存储文件的一些合理的元数据。除了上传者、MIME类型、位置,它还为已上传文件维护了修订信息。files表的模式,如表13-1所示:
表 13-1. files表
字段* 类型 默认值 描述
fid serial 主键
uid int 0 与文件相联的用户的ID
filename varchar(255) '' 文件的名字
filepath varchar(255) '' 文件的路径,这里相对于Drupal的根目录
filemime varchar(255) '' 文件的MIME类型
filesize int 0 文件的大小,以字节为单位
status int 0 一个标记,用来指示文件是临时的(1)或是持久的(0)
timestamp int 0 一个Unix时间戳,用来指示文件的添加时间
*粗体指示一个主键,斜体指示一个索引字段
启用文件管理的模块,使用它们自己的数据库表来保存它们自己的数据。例如,由于上传模块将文件与节点关联了起来,所以它在upload表中追踪了这一信息。核心上传模块的数据库表的模式,可参看表13-2。
表 13-2.上传模块使用的upload表
字段* 类型 默认值 描述
fid int 0 主键(在files表中,文件的fid)
nid int 0 与已上传文件相联的nid
vid int 0 与已上传文件相联的节点修订本ID
description varchar(255)'' 已上传文件的描述
list int 0 一个标记,用来指示文件在节点中是否列出,列出(1) 或不列出(0)
weight int 0 这个上传文件的重量,相对于该节点的其它上传文件
*粗体指示一个主键,斜体指示一个索引字段