假設包含示例代碼的頁面是來自站點根目錄的兩個目錄,例如,
http://www.example.com/one/two/example-page.php
,那麼你可以這樣做:
<a href='http://<?php echo htmlentities($_SERVER['SERVER_NAME'], ENT_QUOTES)?>/files/uploaded_file.jpg'>Your Uploaded File</a>
如果假設是錯誤的並且文件被存儲在目錄中至少有一個目錄以外的根更深例如
http: //www.example.com/content/files/uploaded_file.jpg
然後你必須多一點工作才能獲得絕對網址。
<?php
$FilesystemPath = str_replace("\\", "/", realpath(dirname(__FILE__) . "/../../files/")) . "/uploaded_file.jpg";
$DocRoot = $_SERVER['DOCUMENT_ROOT'];
$Uri = str_replace($DocRoot, '', $FilesystemPath);
?>
<a href='http://<?php echo htmlentities($_SERVER['SERVER_NAME'] . $Uri, ENT_QUOTES)?>'>Your Uploaded File</a>
本示例假定您知道文件目錄位於從頁面目錄向上兩個目錄的目錄中。
所有這些示例都假設文件系統上的目錄一對一映射,並且沒有進行URL重寫。另外我假設你只使用普通的http而不是https。如果你想在同一個協議中顯示鏈接,那麼這是一個單獨的問題。