我在codeigniter中创建下载链接时遇到问题。我的问题是我的文件名有一个本地路径:
C:\wamp\www\elance\zip2\uploads/13487727859183.zip现在,为了创建下载链接,我需要像http://localhost/elance/zip2/uploads/13487727859183.zip这样的东西
我很困惑,也不知道该怎么做。
发布于 2012-09-28 04:53:20
如果想要将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);发布于 2012-09-28 05:26:04
无需测试,我认为这应该可以很好地工作。该函数需要放在一个帮助器中
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\");发布于 2012-11-14 00:09:13
我想我理解你的问题,因为我今天也遇到了同样的问题。
下面是我的一行解决方案,这里是一个解释,以确保我理解正确。
您有一个文件,以及该文件名的本地路径,可能存储在数据库表或类似表中……对,是这样?
例如: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()位...
希望这能有所帮助!皮特
https://stackoverflow.com/questions/12629052
复制相似问题