我正在使用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>
除了将文件上传到“专辑/”
外,它才有效感谢未来:)
答案 0 :(得分:0)
问题是您使用PHP在上传参数对象中设置文件夹变量。 PHP是服务器端,而不是客户端。因此,直到页面加载才会执行。您的路径最终为../albums/
。
此外,这是处理文件上传的难以置信的不安全方式。客户端不应该选择放置文件的路径......至少,不能没有这条路径的卫生。
我会做的最低限度是改变这一行,对此:
'folder' : $('#folderchoose').val()
然后,服务器端,concat ../albums
或其他路径。但是,请再次清理您的输入。谁在乎它是否仅适用于管理员。管理员也可能是邪恶的,脚本和其他获取密码的人也是如此。