在使用php下载文件之前检查文件
我想在下载文件之前检查一下文件, 我有控制器下载和功能下载文件 这是我的密码: 我厌倦了这个代码,我总是得不到在使用php下载文件之前检查文件,php,codeigniter,Php,Codeigniter,我想在下载文件之前检查一下文件, 我有控制器下载和功能下载文件 这是我的密码: 我厌倦了这个代码,我总是得不到 public function download_file($namafile,$nofile) { $filecek =(site_url()."/uploads/file/".$namafile); $data = file_get_contents(site_url().'/uploads/file/'.$namafile); e
public function download_file($namafile,$nofile)
{
$filecek =(site_url()."/uploads/file/".$namafile);
$data = file_get_contents(site_url().'/uploads/file/'.$namafile);
echo "$filecek";
if (!file_exists($filecek)) {
echo "no";
}else {
force_download($namafile,$data);
echo "yes";
}
}
}
这是下载链接
<a href="<?php echo base_url(); ?>download/<?php echo $getFiles['file']; ?>/<?php echo $getFiles['nofile']; ?>"><i class="icon-download"></i> <?php echo $getFiles['kategori']; ?></a>
$filecek的输出是什么
IMO$filecek=(site_url()。“/uploads/file/”$namafile)
应更改为$filecek=(base_url()。“/uploads/file/”$namafile)代码>因为
echo base_url(); //http://example.com/website
echo site_url(); //http://example.com/website/index.php
用于访问资源base\u url()
是可以接受的,因为您无法在http://example.com/website/index.php/file.ext
site\u url()
不会以这种方式工作,因为您总是可以获得网站url
文件\u exists()
但是检查服务器上是否存在目录或文件-因此需要绝对位置
您可以使用一个名为FCPATH
的常量,它指向index.php
所在的目录
所以基本上你可以尝试以下方法
public function download_file($namafile,$nofile)
{
$filecek = FCPATH."uploads/file/".$namafile;
echo "$filecek";
if (!file_exists($filecek))
{
echo "no";
}
else
{
force_download($namafile, NULL);
echo "yes";
}
}
这里唯一的条件是,uploads/file/
存在于FCPATH
中