[英]How can i get path url from a local path in codeigniter
我在codeigniter中創建下載鏈接時遇到問題。 我的問題是我為文件名設置了本地路徑:
C:\wamp\www\elance\zip2\uploads/13487727859183.zip
現在要創建下載鏈接,我需要類似http://localhost/elance/zip2/uploads/13487727859183.zip
我很困惑,沒有得到解決方法。
如果要將C:\\wamp\\www\\elance\\zip2\\uploads/13487727859183.zip
為http://localhost/elance/zip2/uploads/13487727859183.zip
,則只需使用str_replace
$str = "C:\wamp\www\elance\zip2\uploads/13487727859183.zip";
$str = str_replace("C:\wamp\www\","http://localhost/", $str);
$str = str_replace('\\', '/', $str);
未經測試,我認為這應該很好。 該功能將需要放置在一個助手中
function create_download_link($file, $base_url, $location = "C:\wamp\www\") {
$link = "<a href='" . str_replace("\\", "/", str_replace($location, $base_url, $file)) . "'>Download File</a>";
return $link;
}
//example call
create_download_link("C:\wamp\www\elance\zip2\uploads/13487727859183.zip", base_url(), "C:\wamp\www\");
我想我了解您的問題,因為我今天遇到了同樣的問題。
以下是我的單行解決方案,以下是確保我正確理解的說明。
您有一個文件,以及該文件名的本地路徑,該路徑可能存儲在數據庫表中或類似文件中...對嗎?
例如。 C:\\ wamp \\ www \\ myApp \\ path \\ to \\ file.zip
您希望您的應用程序吐出一個鏈接,以便瀏覽您網頁的用戶可以單擊該鏈接並下載文件,對嗎?
您的應用程序位於:C:\\ wamp \\ www \\ myApp \\ index.php
僅當您的文件存儲在應用程序根目錄的子目錄中時,下面的動態解決方案才有效,並且很容易,因為它利用了CodeIgniter的預定義常量和url幫助器:
// FCPATH -> where the index.php file lives
// $my_file -> your file
$file_url = str_replace(FCPATH, base_url(), $my_file);
而已。
只需將文件路徑的“ FCPATH”部分替換為“ base_url()”輸出,就可以了。
如果您的文件位於不是您的應用程序文件夾的子文件夾的文件夾中,則必須對FCPATH和base_url()位進行硬編碼。
希望有幫助! 皮特
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.