Dropzone js和Verot's上传,如何上传到动态文件夹


Dropzone js and Verot's upload, how to upload to dynamic folder?

我使用Dropzone.js和Verot的class.upload.php来创建一个简单的上传文件。我想有图像上传到文件夹动态从$_GET[]变量。

下面是我的代码,但无论我做什么,所有的文件都被上传到"uploads"文件夹。

upload.php

<?php include('includes/php/class.upload.php');  ?>
<form action="upload.php" class="dropzone"></form>
<?php
$ds = DIRECTORY_SEPARATOR;
$filesFolder = 'uploads';
if(isset($_GET['album'])){
$targetDir = dirname(__FILE__).$ds.$filesFolder.$ds.$_GET['album'];
}else{
$targetDir = dirname(__FILE__).$ds.$filesFolder;
}
if(!empty($_FILES)){
$handle = new upload($_FILES['file']);
if ($handle->uploaded) {
    $handle->image_resize         = true;
    $handle->image_x              = 960;
    $handle->image_ratio_y        = true;
    $handle->process($targetDir);
}
}

?>`

如果url是index。php?相册=rocks,图片应该上传到"uploads/rocks"。但是,现在所有的东西都被上传到了"uploads"。

如果我把$filesFolder变量直接改成"uploads/rocks"文件就会上传到指定的文件夹。

我做错了什么吗?或者除了使用$_GET.

之外,还有更好的方法来实现这一点吗?

代码的问题是基于当前代码的$_GET['album']不存在,因此扩展路径从未被创建。对于GET请求,必须在表单中使用隐藏输入。但也要注意,如果您计划在一个实时网站或软件中使用此代码,请通过验证和消毒妥善保护数据。

<form action = "upload.php" method="get" enctype="multipart/form-data">
    <input type="hidden" name="dir" value="album"/>
    <input type="submit"/>
</form>