2012-05-20 73 views
-1

好吧,我正在編寫一個上傳文件的腳本,然後將文件路徑發佈到mysql數據庫。我遇到的問題是從服務器的根目錄發佈絕對路徑。我沒有網絡訪問服務器的這部分,所以當我的其他腳本去加載它時,它會失敗。絕對路徑問題

我知道問題在於這一行。它的出版:ROOT/AAAA/AAA/AAAA/AAAA /私營/ modernevents /上傳/ image1.jpg的只是這一翻譯/private/modernevents/uploads/images1.jpg

$targetFolder = '/private/modernevents/uploads'; // Relative to the root 
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder; 

試圖刪除$ _ SERVER ['DOCUMENT_ROOT '],劇本將不再工作

任何想法? Im lost:/

+1

我想你錯了你的問題的原因。假設兩條路徑指向相同的地方,指定絕對路徑而不是相對路徑不應導致文件訪問失敗。無關緊要的是,您無法訪問絕對路徑中較高的目錄;重要的是你可以在最後訪問目錄(和文件)。我建議你檢查並確保你所追加的部分是正確的。 – octern

+0

嗯,我有godaddy託管(是的,我知道),所以當腳本去顯示圖像時,我得到一個404,因爲它試圖顯式url.com/uploads/images1.jpg但它的獲取url.com/aaaa/aaa/ aaaa/aaaa/private/modernevents/uploads/image1.jpg由於url指向/ html/private/modernevents/not/aaaa /不存在,所以我希望這是有道理的:/ haha –

回答

2

如果您只想存儲/ private/modernevents/uploads的路徑,請不要使用$ _SERVER ['DOCUMENT_ROOT']。在數據庫中存儲$ targetFolder。$ imageName。

1

首先,知道你在哪裏:使用__FILE__然後使用dirname()來獲取腳本的目錄。然後,如果您知道上傳路徑與您的相對位置,則可以構建您需要的完整路徑。