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


How do you dynamically set the upload target path when using an AJAX based file uploader?

我正在尝试实现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文件上传器是如何做到这一点的,请在GitHub上查看他们的PHP。如何使上传路径根据用户输入字段的不同而变化?

我相信PHP需要在你开始上传文件时知道将文件保存在哪里。但是,一旦上传完成,你可以通过PHP的rename()函数移动文件。

还有move_uploaded_file()(尽管我自己从未使用过)。