从phpmyadmin下载的Codeigniter文件无法读取
当我从数据库表(用户)下载文件时,该文件将变得不可读。图像文件将变得无效,PDF文件将无法加载。下载文件的大小也将变为1KB 虽然一开始我已经成功地将文件上传到同一个表(用户),所以文件肯定不是1kb 我的控制器(Files.php)从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
您的下载方法应如下所示:
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);这也是我的答案,所以请勾选绿色