drupal中的文件上传问题,所有文件都提交到/ tmp而不是提交的位置

时间:2011-01-28 10:45:04

标签: drupal drupal-6

以下是我用来上传的代码(drupal 6)

echo "DIR".$dir = drupal_get_path('module', 'modulename') . '/files';
if($docfile = file_save_upload('document',$dir))
    echo "success:".$docfile->filepath;

它显示输出成功:/tmp/Winter_0.jpg我看到文件上传到/ tmp文件夹而不是我的modulename / files文件夹。任何人都可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

您使用错误的参数调用file_save_upload。有关相关信息,请参阅file_save_upload API docs

答案 1 :(得分:0)

如果我正确理解了语法,那么下面的工作就是:

echo "DIR".$dir = drupal_get_path('module', 'modulename') . '/files';
if($docfile = file_save_upload('document', null, $dir))
    echo "success:".$docfile->filepath;

另一种可能性是你需要告诉Drupal该文件不是临时文件。

file_set_status($file, FILE_STATUS_PERMANENT);

编辑:

只需使用wimvds提供的链接,阅读文档,并测试正确的语法是什么。也许您保存文件的目录是错误的?尝试/ sites / all / files或/ sites / default / files而不是试图把它放到apache可能甚至没有读/写权限的模块文件夹中,至少我不确定Drupal是否允许我们在那里存储文件。

阅读API的另一个方法是让我尝试file_save_upload($yourfile, array(), $destination_directory, FILE_EXISTS_REPLACE);