我在codeigniter中创建下载链接时遇到问题。 我的问题是我的文件名的本地路径:
C:\wamp\www\elance\zip2\uploads/13487727859183.zip
现在要制作下载链接,我需要像http://localhost/elance/zip2/uploads/13487727859183.zip
我很困惑,没有找到解决方法。
答案 0 :(得分:0)
如果您想将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);
答案 1 :(得分:0)
没有测试它我认为这应该工作得很好。该函数需要放在帮助器中
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\");
答案 2 :(得分:0)
我想我理解你的问题,因为我今天遇到了同样的问题。
以下是我的一行解决方案,这是一个解释,以确保我理解正确。
您有一个文件,该文件名的本地路径,可能存储在数据库表或类似文件中......是正确的吗?
例如。 C:\瓦帕\ WWW \对myApp \路径\到\ 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);
就是这样。
只需用“base_url()”输出替换文件路径的“FCPATH”部分,就可以了。
如果您的文件位于不是应用程序文件夹的子文件夹的文件夹中,则必须对FCPATH和base_url()位进行硬编码...
希望有所帮助! 皮特