我在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上运行。
答案 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
。