I’m writing a segment of PHP to receive an excel spreadsheet and aggregate it to a database. The major issue is that I am failing to use relative paths correctly (I believe). Code as follows:
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:
<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>
Relevant segment of the PHP Script:
//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();
Also, I tried using an include to include the tmp directory to no avail.
I think it may also be worth noting that the script itself has two distinct segments and the above code is in the second one (the first is just some includes and error stuff). Also there is a little bit of HTML in the middle but I believe that to not be relevant.
Thanks.
PS: I already read ~8 of the PHP file upload and relative path related questions on here, but they seemed unrelated. Also, I already asked my friend (he’s a pretty smart guy and knows a lot, his name is Google) but he wouldn’t tell me. I suspect that he knows the answer, I just wasn’t asking the right questions.
there is an original filename in $_FILES[‘file’][‘name’]
you should use $_FILES[‘file’][‘tmp_name’] without any path and slashes in front of it, it already has full path inside: