Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用输入类型文件选择文件夹路径_Php_Html - Fatal编程技术网

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

Php 使用输入类型文件选择文件夹路径,php,html,Php,Html,我在PHP中遇到了一个问题。我正在使用从用户处获取文件名。 基本上我只想存储文件夹路径,而不是文件,这样当我使用超链接显示路径时,用户可以打开目录 但是使用用户必须选择一个文件,然后只有文件文本框才会被填充。现在我想去掉文件名的最后一部分 我该怎么做?还是有更好的方法来解决这个问题 编辑: 我在一个名为1.html的文件中使用了类似的内容: <form method="post" action="update.php"> <input type="file" name=

我在PHP中遇到了一个问题。我正在使用
从用户处获取文件名。 基本上我只想存储文件夹路径,而不是文件,这样当我使用超链接显示路径时,用户可以打开目录

但是使用
用户必须选择一个文件,然后只有文件文本框才会被填充。现在我想去掉文件名的最后一部分

我该怎么做?还是有更好的方法来解决这个问题

编辑:

我在一个名为1.html的文件中使用了类似的内容:

<form method="post" action="update.php">
    <input type="file" name="attachment" id="attachment"></td> </tr>
 </form>
基本上,我得到的文件名是用户选择的$logpath1。 但问题是input type=file只适用于文件,而不适用于文件夹

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

示例:如果用户选择

C:\Documents and Settings\myusee\Desktop\new 2.cpp
我想去掉
新的2.cpp


我不知道如何使用explode。此外,我正在运行。

出于安全原因,大多数浏览器禁止访问路径信息(或文件输入框的任何其他部分)。对于正常的文件输入,这是无法做到的。也许有一个基于Flash的上传插件,比如swfbox,允许预设目录

您可以通过另一种方式来实现,在提交前放置一个隐藏字段
,然后使用jQuery(JavaScript)选择文件输入框的值,并将其放置在隐藏字段中,提交后,您将拥有一个完整的路径,我不知道它是否有效,但值得一试。

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

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

$temp_path=$_FILES['attachment']['tmp_name'];
但是,这会给服务器带来安全风险。此外,临时路径通常被拒绝从web访问。通常,只有PHP解释器才能访问此文件

通常,一旦上传文件,如果文件有效,可以通过以下方式移动:

move_uploaded_file($_FILES['attachment']['tmp_name'], $the_directory_i_want);
但是由于
$theu directory\u i\u want
是您设置的一个变量,您应该已经知道了这一点


听起来好像您正试图将和PHP作为某种本地文件实用程序使用。如果是这样,PHP可能不是一个好的解决方案。相反,您可能想看看如何创建一个。

Dupe:(您不能-文件输入是用来上传文件的,而不是关于访问者文件系统的信息)我不是在谈论文件系统。我只是使用用户选择的文件名。路径名是关于文件系统结构的信息。即使在重写之后,我也同意David Dorward的观点。您不能在服务器端执行此操作,只传递文件的内容及其文件名。但是,在他们选择了一个文件之后,您可能可以从DOM中获取此信息,并从那里将数据解析到另一个字段中。
move_uploaded_file($_FILES['attachment']['tmp_name'], $the_directory_i_want);