我想知道是否还有客户端选择文件的绝对路径!
$_FILES['xml_file']['tmp_name'];
这也提供了所选文件的路径,但是它的服务器端路径......结果是这样的C:\xampp\tmp\php2679.tmp
我希望C:\Users\Sami\Desktop\data\myfile.xml
放置我的实际文件。
因为我想让这个实际路径再次用于自动获取和保存等(通过代码)。
答案 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
你的唯一技巧就是命名它,这样你就可以再次找到第二个请求,然后决定把它放到哪个目录。