Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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
从phpmyadmin下载的Codeigniter文件无法读取_Php_Codeigniter_Codeigniter 3_Codeigniter Download - Fatal编程技术网

从phpmyadmin下载的Codeigniter文件无法读取

从phpmyadmin下载的Codeigniter文件无法读取,php,codeigniter,codeigniter-3,codeigniter-download,Php,Codeigniter,Codeigniter 3,Codeigniter Download,当我从数据库表(用户)下载文件时,该文件将变得不可读。图像文件将变得无效,PDF文件将无法加载。下载文件的大小也将变为1KB 虽然一开始我已经成功地将文件上传到同一个表(用户),所以文件肯定不是1kb 我的控制器(Files.php) 您的下载方法应如下所示: public function download($id) { if(!empty($id)) { $this->load->helper('download'); $fileInfo = $th

当我从数据库表(用户)下载文件时,该文件将变得不可读。图像文件将变得无效,PDF文件将无法加载。下载文件的大小也将变为1KB

虽然一开始我已经成功地将文件上传到同一个表(用户),所以文件肯定不是1kb

我的控制器(Files.php)


您的
下载方法应如下所示:

public function download($id)
{
  if(!empty($id))
  {
    $this->load->helper('download');
    $fileInfo = $this->user->getRows(array('id' => $id));
    $file = FCPATH.'uploads/files/'.$fileInfo['picture']; 
    force_download($file, NULL);
  }
}
<?php if(!empty($files)){ 
  foreach($files as $frow) { ?>
    <div class="file-box">
      <div class="box-content">
          <h5><?php echo $frow['name']; ?></h5>
          <div class="preview">
            <embed src="<?=site_url('uploads/images/'.$frow['picture']); ?>"> 
          </div>
          <a href="<?=site_url('files/download/'.$frow['id']);?>" class="dwn">Download</a>
      </div>
    </div>
<?php } } ?>
你的观点应该是这样的:

public function download($id)
{
  if(!empty($id))
  {
    $this->load->helper('download');
    $fileInfo = $this->user->getRows(array('id' => $id));
    $file = FCPATH.'uploads/files/'.$fileInfo['picture']; 
    force_download($file, NULL);
  }
}
<?php if(!empty($files)){ 
  foreach($files as $frow) { ?>
    <div class="file-box">
      <div class="box-content">
          <h5><?php echo $frow['name']; ?></h5>
          <div class="preview">
            <embed src="<?=site_url('uploads/images/'.$frow['picture']); ?>"> 
          </div>
          <a href="<?=site_url('files/download/'.$frow['id']);?>" class="dwn">Download</a>
      </div>
    </div>
<?php } } ?>


@pradeep的答案看起来是正确的,但提供了一个解释:
force_download($file,$data')-单引号阻止变量
$data
扩展为其内容。我怀疑如果你打开下载的文件,它的全部内容将是“$data”。您注释掉的呼叫,即您传递的
NULL
,可能是您真正想要的,但作为一个相对路径,CodeIgniter可能找不到它。如果我的回答对您有帮助,请不要犹豫,检查它是否为绿色谢谢您pradeep先生,但是我只需更改force_下载($file,$data')即可解决问题;强制下载($file,NULL);这也是我的答案,所以请勾选绿色