使用输入类型文件选择文件夹路径

时间:2009-11-19 14:27:37

标签: php html

我在PHP中遇到了问题。我正在使用<input type=file>从用户那里获取文件名。 基本上我想存储刚才文件夹路径而不是文件,这样当我使用超链接显示路径时,用户可以打开目录。

但是使用<input type=file>用户必须选择一个文件,然后才会填充文件文本框。现在我想剥离文件名的最后一部分。

我该怎么做?或者有更好的方法来解决这个问题吗?

编辑:

我在使用名为1.html的文件中使用类似的东西:

<form method="post" action="update.php">
    <input type="file" name="attachment" id="attachment"></td> </tr>
 </form>

现在,在update.php中我使用的是这样的东西:

$logpath1=$_POST['attachment'];

基本上我在$ logpath1中获取用户选择的文件名。 但事情是输入type = file只适用于文件而不适用于文件夹。

那么,如何从路径中删除文件名?

示例:如果用户选择,

C:\Documents and Settings\myusee\Desktop\new 2.cpp

我想剥离new 2.cpp

我不确定如何使用爆炸。此外,我正在XAMPP Lite上运行。

3 个答案:

答案 0 :(得分:2)

您可以采用另一种方式,使用隐藏字段<input type="hidden" id="something" name="something" />并使用jQuery(JavaScript)选择文件输入框的值,并在提交前将其放入隐藏字段,提交后您将拥有一个整体路径,我不知道它是否有效,但值得一试。

答案 1 :(得分:0)

出于安全原因,大多数浏览器会禁止访问路径信息(或文件输入框的任何其他部分)。使用普通文件输入时,无法完成此操作。 也许其中一个基于Flash的上传插件(如swfbox)允许预设目录。

答案 2 :(得分:0)

1)任何有关客户端文件结构目录路径的信息存在安全风险。 POST提交,JavaScript,Flash,Java应用程序或任何其他具有此功能的基于Web的方法都是一种利用。我怀疑Firefox,Internet Explorer,Safari,Opera或任何其他浏览器都允许你这样做。如果找到方法 - 更高版本的版本很可能会修补此漏洞,您的代码将变得无用。

2)如果要显示服务器目录的目录,可以使用此PHP代码获取存储上载文件的临时目录的完整路径。

$temp_path=$_FILES['attachment']['tmp_name'];

但是,这会对您的 SERVER 造成安全风险。此外,通常拒绝临时路径从Web访问。通常,只有PHP解释器才能访问它。

通常,上传文件后,如果文件有效,可以这样移动:

move_uploaded_file($_FILES['attachment']['tmp_name'], $the_directory_i_want);

但由于$the_directory_i_want设置的变量,你已经知道了。

听起来好像你正在尝试使用WAMP和PHP作为某种本地文件实用程序。如果是这种情况,PHP可能不是一个好的解决方案。您可能希望查看创建.HTA application