我正在编写一段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文件上传和相对路径相关问题,但它们似乎无关。此外,我已经问过我的朋友(他是一个非常聪明的人,知道很多,他的名字是谷歌),但他不会告诉我。我怀疑他知道答案,我只是没有问正确的问题。
答案 0 :(得分:1)
$ _FILES ['file'] ['name']
中有一个原始文件名你应该使用$ _FILES ['file'] ['tmp_name'],前面没有任何路径和斜杠,它已经有完整的路径:
$inputFileName = $_FILES['file']['tmp_name'];