Загрузка Dropzone js и Verot, как загрузить в динамическую папку?

#javascript #php #file-upload #upload #dropzone.js

#javascript #php #загрузка файла #загрузка #dropzone.js

Вопрос:

Я использую Dropzone.js и у Верота class.upload.php чтобы создать простой загружаемый файл. Я хочу, чтобы изображения загружались в папки динамически из переменной $ _GET[].

Ниже приведен код, который у меня есть, но независимо от того, что я делаю, все файлы загружаются в папку «загрузки».

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?album=rocks, изображения должны загружаться в «uploads / rocks». Но прямо сейчас все загружается в «загрузки».

Если я изменю переменную $ filesFolder непосредственно на «uploads / rocks», файл загружается в указанную папку.

Я делаю что-то не так? или есть лучший способ добиться этого, кроме использования $ _GET .

Комментарии:

1. для загрузки файлов ваша форма должна иметь атрибут `enctype=»multipart/ form-data»

2. Вы пытаетесь разрешить загрузку папок?

3. @guest271314 Нет, в динамическую папку загружаются только изображения на основе переменной $ _GET

4. @Franco, спасибо. Я добавил в свою форму, но все равно файлы не загружаются в папку из переменной GET. <действие формы =»upload.php » class=»dropzone» enctype=»составные / данные формы»></form>

Ответ №1:

Проблема с вашим кодом заключается в том, что $ _GET [‘album’] не существует на основе вашего текущего кода, поэтому расширенный путь никогда не создается. Вы должны использовать скрытый ввод в своей форме для запроса GET. Но также имейте в виду, если вы планируете использовать этот код на живом веб-сайте или программном обеспечении, пожалуйста, должным образом защитите данные с помощью проверки и очистки.

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

Комментарии:

1. Можете ли вы привести мне пример? Спасибо

2. Вы должны использовать сообщение, чтобы отправить его в скрытой форме, которую я пропустил. Прошло некоторое время с тех пор, как я сделал формы 🙂

3. А … я понимаю, что вы имеете в виду. Спасибо! Теперь это работает по вашему совету! 🙂 Кроме того, обратите внимание на его проверку. Я изменил его на $ _POST, и все работает нормально.