Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用php下载文件之前检查文件_Php_Codeigniter - Fatal编程技术网

在使用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