Выгрузить раскрывающийся список папок - PullRequest
0 голосов
/ 15 сентября 2011

Я использую загрузчик ajax Uploadify, который действительно хорош!мне удалось получить выпадающий список с папками в каком-то каталоге, но он пишет в директории parant ..

JS:

    $(document).ready(function() {
  $('#file_upload').uploadify({
    'uploader'  : 'uploadify/uploadify.swf',
    'script'    : 'uploadify/uploadify.php',
    'cancelImg' : 'uploadify/cancel.png',
    'folder'        :   '../albums/<?php echo $_POST[folderchoose]  ?>',
    'multi'       : true,
    'auto'      : true,
    'displayData': 'speed',
  });

});

index.php

<form action="index.php" method="post">
<select name="folderchoose" id="folderchoose">

<?php
$items = glob("../albums/*", GLOB_ONLYDIR);
{
    foreach($items as $item)
    {
         ?>  <option><? echo "$item\n "; ?></option> <?
        }
    }

?>
</select>
</form>
<input type="file" id="file_upload" name="file_upload" />
<a href="javascript:$('#file_upload').uploadifyUpload();">Upload Files</a>

это работает, за исключением того, что загружает файлы в "album /"

спасибо впереди:)

1 Ответ

0 голосов
/ 20 сентября 2011

Проблема в том, что вы используете PHP для установки переменной папки в вашем объекте параметров загрузки. PHP на стороне сервера, а не на стороне клиента. Следовательно, он не выполняется до тех пор, пока страница не загрузится. Ваш путь в конечном итоге становится ../albums/.

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

Что бы я сделал минимально, так это изменил бы эту строку на:

'folder'        :   $('#folderchoose').val()

И затем, на стороне сервера, concat ../albums или любой другой путь. Опять же, очистите ваш вклад. Кого волнует, если это только для администраторов или нет. Админы тоже могут быть злыми, как и скрипты и другие, которые получают свой пароль.

...