You are here

复制和移动文件

 

下面的函数可以帮你处理文件系统中已有的文件。
 
file_copy(&$source, $dest = 0, $replace = FILE_EXISTS_RENAME)
    file_copy()函数用来将文件复制到Drupal的文件系统路径下(一般为sites/default/files)。$source参数是一个字符串,用来指定原始文件的位置,可以在函数中还处理了一个文件对象,后者具有属性$source->filepath和可选属性$source->filename(例如上传模块使用了一个文件对象)。注意,由于$source参数是通过引用传递的,所以它必须是一个变量,而不是一个字面上的字符串。列表13-1和13-2显示了一个正被复制到Drupal的默认文件目录中的文件(也就是,没有提供目的文件$dest),前一个为错误的,后一个为正确的。
 
列表 13-1.错误方式:将文件复制到Drupal的默认文件目录(一个字符串无法通过引用传递)
 
file_copy('/path/to/file.pdf');
 
列表 13-2.正确方式:将文件复制到Drupal的默认文件目录
$source = '/path/to/file.pdf';
file_copy($source);
 
    $dest参数是一个字符串,用来指定新复制的文件在Drupal的文件系统路径中目的地。如果没有指定$dest参数,那么将使用文件系统路径。如果$dest位于Drupal的文件系统路径以外(Drupal的临时目录除外),或者如果文件系统路径指定的目录不可写,那么复制将会失败。
    $replace参数用来判定目的文件已存在时Drupal的行为。表13-3总结了$replace参数可用的常量。
 
file_move(&$source, $dest = 0, $replace = FILE_EXISTS_RENAME)
    file_move()函数和file_copy()函数类似(实际上,它调用file_copy()),但是它还会调用file_delete()来删除原始文件。

老葛的Drupal培训班 Think in Drupal

Drupal版本: