获取上载文件的文件路径

时间:2018-07-03 06:25:39

标签: javascript php file file-upload

我目前正在做一个PHP项目,要求我对数据库中所有导入的Excel进行记录。

我能够从tmp_name全局变量中获得$_FILES,但无法获得确切的文件路径。

这是我的代码段。

index.php

<form role="form" method="post" action="post_data.php" enctype="multipart/form-data">
    <input type="file" name="file" required>
    <button>Submit</button>
</form>

post_data.php

<?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        //var_dump($_FILES['file']);
        //var_dump($_FILES['file']['name']); #gets the file name
        var_dump($_FILES['file']['tmp_name']); #gets the temp file path and name
    }
?>

任何帮助将不胜感激。如果有任何可用的解决方案,我也可以使用javascript。谢谢

3 个答案:

答案 0 :(得分:5)

您不会获得文件路径。 PHP中的文件上传功能可以使您在上传文件时将其上传到一个临时位置,然后您的表单将被发布。临时位置的路径将在tmp_name数组的$_FILES选项中提供。

通过使用move_uploaded_file函数,此文件将从临时位置移动到您选择的位置。但是,您必须提供要将文件从临时位置移到的位置(包括文件名)。

因此,如果您要查找要从中移动文件的路径,则该文件将显示在tmp_name中。

希望这会有所帮助。

答案 1 :(得分:3)

<?php
//variable containing path of Server's folder where you want to upload your file 
$path;
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    //var_dump($_FILES['file']);
    //var_dump($_FILES['file']['name']); #gets the file name
    var_dump($_FILES['file']['tmp_name']); #gets the temp file path and name
    if (move_uploaded_file($_FILES['file']['tmp_name'], $path . DS . $_FILES['file']['name'])) {
        //file uploaded successfully
        //your file is uploaded at $path . DS . $_FILES['file']
   }
   else {
        //error in uploading file
  }
}
?>

答案 2 :(得分:0)

  

$ image = $ _ FILES ['file'];
  $ base = $ _ SERVER ['DOCUMENT_ROOT']; $ filename = $ _ FILES ['file'] ['name'];   $ path = $ base。“ / trial / Uploads / Original_folder / signature /".$ filename。”“;       if(file_put_contents($ path,$ image)!= false)       {        回声$路径;       }