0

我正在编写一段 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();

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

谢谢。

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

4

1 回答 1

1

$_FILES['file']['name'] 中有一个原始文件名

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

$inputFileName = $_FILES['file']['tmp_name'];
于 2012-12-11T00:13:58.497 回答