2016-10-02 61 views
0

我使用Dropzone.js和Verot的class.upload.php創建一個簡單的上傳文件。 我想從$ _GET []變量動態地將圖像上傳到文件夾。Dropzone js和Verot的上傳,如何上傳到動態文件夾?

下面是我的代碼,但無論我做什麼,所有文件都會上傳到「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?專輯=岩石,圖像應該得到上傳到 「上傳/石頭」。但是,現在所有上傳到「上傳」。

如果我將$ filesFolder變量直接更改爲「uploads/rocks」文件上傳到目標文件夾。

我做錯了什麼?還是有更好的方式來實現這一點,除了使用$ _GET。

+0

對於文件上傳您的表格必須具有屬性'enctype =「multipart/form-data」 – Franco

+0

您是否嘗試允許文件夾上傳? – guest271314

+0

@ guest271314不,只有圖片上傳到基於$ _GET變量的動態文件夾 – Jackie

回答

0

您的代碼問題是$ _GET ['album']根據您當前的代碼不存在,所以延伸路徑永遠不會被創建。您必須在您的表單中使用隱藏的輸入來獲取GET請求。但是,如果您在現場網站或軟件中使用此代碼的計劃,請通過驗證和消毒來妥善保護數據。

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

你能舉個例子嗎?謝謝 – Jackie

+0

你必須使用一個帖子發送它作爲我想念的隱藏形式發言。一直以來,因爲我做了形式:) – jgetner

+0

啊...我明白你的意思。謝謝!它現在從你的建議中起作用! :)另外,請注意關於它的驗證。我將其更改爲$ _POST,並且它都很好地工作。 – Jackie