如何在php中获取所选文件的客户端绝对路径

时间:2018-06-10 12:46:49

标签: php file-upload path filepath

我想知道是否还有客户端选择文件的绝对路径!

$_FILES['xml_file']['tmp_name'];这也提供了所选文件的路径,但是它的服务器端路径......结果是这样的C:\xampp\tmp\php2679.tmp

我希望C:\Users\Sami\Desktop\data\myfile.xml放置我的实际文件。

因为我想让这个实际路径再次用于自动获取和保存等(通过代码)。

2 个答案:

答案 0 :(得分:0)

您可以在php上尝试echo realpath($_FILES['xml_file']['name']);

然后输出将是:

C:\Users\Sami\Desktop\data\myfile.xml

答案 1 :(得分:0)

单击浏览按钮时,会选择该文件。当您单击提交按钮时,整个文件将从浏览器发送到Web服务器,而PHP确实将整个文件放在php服务器临时目录中。 然后,您的脚本会被调用。

因此,当您尝试从$_FILES['xml_file']['name']$_FILES['xml_file']['tmp_name']realpath($_FILES['xml_file']['name'])获取绝对路径时,您将获得服务器上的路径。

此问题的解决方案是简单地将文件复制到某处,而不是再次请求文件上载。您需要确保将其复制到Web服务器上的哪个位置,服务器才有权这样做。通常,这涉及为Web服务器运行的用户(通常是用户' apache'或者没有基于apache的服务器)向您创建的特殊目录提供写入权限为目的。

复制在PHP中可用。 http://us3.php.net/manual/en/function.copy.php

你的唯一技巧就是命名它,这样你就可以再次找到第二个请求,然后决定把它放到哪个目录。