2012-12-11 15 views
0

我在寫一段PHP來接收excel電子表格並將其聚合到數據庫。主要問題是我無法正確使用相對路徑(我相信)。代碼如下:我未能在PHP表單中正確使用相對路徑

的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文件上傳和相關路徑相關的問題,但他們似乎沒有關係。此外,我已經問過我的朋友(他是一個非常聰明的人,知道很多,他的名字是谷歌),但他不會告訴我。我懷疑他知道答案,我只是沒有問正確的問題。

+0

哦,廢話我想我剛剛意識到我使用了錯誤的斜槓......對不對? – gal

+0

你的斜槓很好......你有沒有嘗試過使用getcwd()來確保你知道你的腳本在哪裏運行?這是一個很好的起點,以定位自己... – RonaldBarzell

+0

echo'當前工作目錄是',getcwd(),'
'; 輸出C:\ xampp \ htdocs – gal

回答

1

存在$ _FILES原始文件名[「文件」] [「名稱」]

你應該使用$ _FILES [「文件」] [「tmp_name的值」]沒有任何路徑和在它前面的斜槓,它已經有完整的路徑裏面:

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