我正在尝试下载一个以前上传的文件,表单数据库和php代码点火器中的上传文件夹。我正在使用下面的代码,但正在下载空文件。
controller.php
public function downloadFile($incidents_id)
{
$file = $this->incidents_model->getfile($incidents_id);
//echo $file; die;
$this->load->helper('download');
$path = file_get_contents(base_url()."uploads/".$file); //(the error shows on this line)
// echo $path; die;
$name = $file; // new name for your file
// echo $name ; die;
force_download($name, $path); // start download`
}
事故_模型.php
function getfile($Incident_id )
{
$file = $this->db->select('file');
$this->db->from('incidents');
$this->db->where('incidents_id' , $Incident_id );
$query = $this->db->get();
// return $query->row();
if ($query->num_rows() > 0) {
return $query->row()->file;
}
return false;
}
view.php
<div class="form-group col-md-4">
<a href="<?=base_url('admin/incidents/downloadFile/' .$incidents->incidents_id)?>">Download file </a>
</div>
所以运行此代码会下载一个空文件。
echo$文件;死亡显示保存在数据库和上传文件夹中的文件名
echo$path;死亡生成错误:严重性:警告
消息:文件集内容(http://localhost:8080/ticketing_tool_v2/uploads/Screenshot2021-03-04下午5.59.38(:无法打开流:连接拒绝
文件名:admin/Incidents.php
线路编号:380
查看file_get_contents
的文档,您会发现有许多不同的方法可以使用它。出于您的目的,您需要允许到文件系统的入站连接。
为了更好地进行未来验证,您可以使用CodeIgniter文件帮助程序https://codeigniter.com/userguide3/helpers/file_helper.html
从路径读取文件之前,请检查路径是否指向有效文件。
public function downloadFile($incidents_id) {
try {
$this->load->helper('download');
$file = $this->incidents_model->getfile($incidents_id);
$data = file_get_contents(base_url("uploads/" . $file));
$name = $file; // new name for your file
force_download($name, $data); // start download`
} catch (Exception $e) {
//exception handling code goes here
print_r($e);
}
}