使用基于AJAX的文件上传器时,如何动态设置上传目标路径?

时间:2012-01-28 23:50:39

标签: php ajax file-upload

我正在尝试实现Valum的文件上传器(由Ben Colon https://github.com/bencolon/file-uploader改进)并且我遇到了问题。以前,我的upload.php根据某些输入字段设置了上传目标。见这里:

//Directory where files are stored
if ($grade == '9')
{
$target = "storage/g9/";
}
elseif ($grade == '10')
{
$target = "storage/g10/";
}
elseif ($grade == '11')
{
$target = "storage/g11/";
}
elseif ($grade == '12')
{
$target = "storage/g12/";
}


$target = $target . $_POST['snumber'] . "." . $extension;    
move_uploaded_file($_FILES['upload']['tmp_name'], $target);

现在,使用基于AJAX的文件上传器,它甚至在你提交之前就开始上传,所以PHP没有机会获取输入字段来决定上传路径是什么,它只能转到预定义的一。要查看AJAX文件上传器如何执行此操作,请查看their PHP on GitHub。如何使上传路径根据用户输入字段而改变?

1 个答案:

答案 0 :(得分:0)

我相信PHP一旦开始上传就需要知道保存文件的位置。但是,您可以通过PHP的rename()函数在文件上传完成后移动文件。

还有move_uploaded_file()(虽然我自己从未使用过它)。