2011-08-23 84 views
0

我使用的搜索形式,我沒有發現任何類似的職位,所以請多多包涵。PHP文件上傳

我編碼一個腳本來得到一個目錄名作爲輸入,掃描目錄來存放文件,驗證文件(S)(擴展,e.t.c)和文件上傳到Web服務器。我已經完成了腳本的編碼(我使用了ftp_put,我知道我也可以使用cURL)。

現在的問題是,該腳本能正常工作在我的本地。但之後,我記得腳本將在線託管,然後我必須弄清楚如何解決上傳文件的路徑(我的意思是它不像我可以輸入C:/ blahblah作爲目錄名) 。

非常感謝你們。預期。

+0

使該路徑可配置。那麼你不需要改變代碼,而只需要改變配置。將配置注入需要處理文件的功能。 – hakre

+0

使用$ _SERVER ['DOCUMENT_ROOT'] – Rikesh

+0

@hakre,thx你的及時回覆,但我不明白你在說什麼。在我的本地主機上,我可以調用像'code' scanFolder(「directoryname」)這樣的函數; 'code'。我現在的問題是在Web服務器上調用上述相同的函數將導致服務器上的文件夾被掃描,而不是用戶。 –

回答

0

使用$_SERVER['SCRIPT_FILENAME']__FILE__常數來獲得當前腳本的文件名。然後使用函數dirname從那裏創建一個相對路徑。

1

與配置的例子:在服務器上你只需要根據自己的需要更改配置文件:

的config.php:

return array(
    'upload-folder' => 'path to folder', 
); 

腳本的其餘部分應該運行,那麼根據配置上,而不是硬編碼的 「目錄名」 值:

$config = include('config.php'); # load configuration data 

... 

process_upload($directory) 
{ 
    ... 
    scanFolder($directory); 
    ... 
} 

...

process_upload($config['upload-folder']); # inject directory dependency 

希望這是想法更加清晰。這僅僅是一個例子,你可以通過各種方式做到這一點,重要的部分是你使腳本獨立於通過使用變量而改變的值。

+0

對不起,我想我沒有讓自己清楚。問題出在上傳$目錄變量而不是上傳文件夾。我的意思是,如何在不解析服務器上的目錄(如果存在)的情況下從Internet解析用戶的本地目錄。 –

+0

什麼是「用戶本地目錄」?你是指某種特定的操作系統嗎? – hakre

+0

@Umar您是否想從遠程Web服務器掃描用戶本地計算機目錄? – MrWhite