Uploadify下拉文件夹列表

时间:2011-09-15 07:09:56

标签: ajax drop-down-menu directory uploadify

我正在使用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>

除了将文件上传到“专辑/”

外,它才有效

感谢未来:)

1 个答案:

答案 0 :(得分:0)

问题是您使用PHP在上传参数对象中设置文件夹变量。 PHP是服务器端,而不是客户端。因此,直到页面加载才会执行。您的路径最终为../albums/

此外,这是处理文件上传的难以置信的不安全方式。客户端不应该选择放置文件的路径......至少,不能没有这条路径的卫生。

我会做的最低限度是改变这一行,对此:

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

然后,服务器端,concat ../albums或其他路径。但是,请再次清理您的输入。谁在乎它是否仅适用于管理员。管理员也可能是邪恶的,脚本和其他获取密码的人也是如此。