我无法在PHP表单中正确使用相对路径

时间:2012-12-11 00:01:43

标签: php file file-upload upload

我正在编写一段PHP来接收excel电子表格并将其聚合到数据库中。主要问题是我没有正确使用相对路径(我相信)。代码如下:

PHP.ini中:

    ; Temporary directory for HTTP uploaded files (will use system default if not
    ; specified).
    ; http://php.net/upload-tmp-dir
    upload_tmp_dir = "C:\xampp\tmp"

HTML表单:

    <form action="Update_data.php" method="POST" enctype="multipart/form-data">
        <input type="file" name="file" id="file"></br>
        <INPUT type="submit" name="submit" value="Submit"></br>
    </form>

PHP脚本的相关部分:

//This is where I believe my error to be; 
//The script is in xampp/htdocs/
//The temporary file that is uploaded should be? in xampp/tmp/
    $inputFileName = '../tmp/' . $_FILES['file']['name'];

//The following correctly outputs the file name when run
    echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),'<br />';

//The following is supposed to create a PHPExcel object out of the file, but it can't FIND the file =(
    $objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
    $objWorksheet = $objPHPExcel->getActiveSheet();

另外,我尝试使用include来包含tmp目录无济于事。 我认为值得注意的是脚本本身有两个不同的段,上面的代码在第二个(第一个只是一些包含和错误的东西)。中间还有一些HTML,但我认为不相关。

感谢。

PS:我已经在这里阅读了~8个PHP文件上传和相对路径相关问题,但它们似乎无关。此外,我已经问过我的朋友(他是一个非常聪明的人,知道很多,他的名字是谷歌),但他不会告诉我。我怀疑他知道答案,我只是没有问正确的问题。

1 个答案:

答案 0 :(得分:1)

$ _FILES ['file'] ['name']

中有一个原始文件名

你应该使用$ _FILES ['file'] ['tmp_name'],前面没有任何路径和斜杠,它已经有完整的路径:

$inputFileName = $_FILES['file']['tmp_name'];