#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, и все работает нормально.