我已使用此步骤echo $_FILES["fileField"]["tmp_name"];
,但结果如下。
C:\xampp\tmp\phpA9EE.tmp
如何获得确切的文件路径?
答案 0 :(得分:1)
上传的文件没有“完整路径”,而不是PHP在上传过程中存储它的临时位置。
为了用户的安全,浏览器只发送远程计算机上的文件名;对于你的安全性,你不应该盲目地使用它(安全经验法则:用户发送的任何内容都是可疑的并且可能用于攻击你的系统)。您可能希望通过白名单过滤它(例如删除除字母和数字之外的任何内容)并将其用作“友好”的上传名称,或者您可能希望完全忽略它。浏览器还发送文件类型(例如image/jpeg
);再次,这个不应该被信任 - 了解文件类型的唯一方法是使用查看内容并验证它的命令。
就PHP而言,上传的内容是一大块二进制数据;它将它保存到一个随机命名的文件,这是你在那里回显的路径。 PHP手册有an introduction to how this works。
使用该路径,您可以执行以下两项操作之一:
is_uploaded_file()
进行验证,并使用file_get_contents()
或类似的move_uploaded_file()
将其置于您选择的永久位置