将文件下载到桌面,其中字段名等于 codeigniter 中的文件名
Posted
技术标签:
【中文标题】将文件下载到桌面,其中字段名等于 codeigniter 中的文件名【英文标题】:Download a file to the desktop where field name equals file name in codeigniter 【发布时间】:2015-06-25 13:01:20 【问题描述】:我编写了允许某人输入日期的代码。如果提交日期等于文件名,那么 codeigniter 应该将文件下载到桌面。显示的代码对我来说很有意义,但是当我运行它时,我得到“找不到文件”。我可以在服务器上提取文件,并且名称与 mysql 数据库中返回的名称相匹配。我的最终目标是能够下载与我的提交日期字段具有相同文件名的文件
if($this->input->post('submit'))
$trlr_num = $this->input->post('trlr_num');
elseif($this->uri->segment(4))
$trlr_num = $this->uri->segment(4);
if( !empty($trlr_num))
$query = $this->trailer_model->select_trailer_draw($trlr_num);
$result =& $query->row_array();
if( !empty($result))
// Get filepath to bill
$directory = 'http://intranet.gmwdc.com/inc/img/inspection/upload';
$file = $directory.'/'.$result['submission_date'];
$this->load->helper('download');
if(file_exists($file))
$data = file_get_contents($file);
force_download($result['submission_date'],$data);
else
$this->session->set_status_data('error','File was not found.');
return;
else
$this->session->set_userdata('error','No Inspection Draw Found');
【问题讨论】:
【参考方案1】:您可能引用了错误的目录或文件名。另外,$file
似乎没有扩展名。
$file = $directory . '/' . $result['submission_date'] . $extension;
已编辑
尝试使用 Codeigniter FCPATH
而不是 $directory
,它指向您的 Codeigniter 安装目录。
$file = FCPATH . 'dir1/dir2/' . $result['submission_date'];
【讨论】:
我在我的 SQL 查询中使用 CONCAT 来添加 .png 扩展名。我用 $extension 尝试了你的建议。我在我的 sql 查询中删除了 CONCAT 并添加了 $extension = '.png';这没有通过。感谢您的帮助。 嗯,如果扩展是好的。检查$directory
。它包含什么?
奇怪,当我将它添加为 $data['directory'] = $directory; 时,我知道它是一个未定义的变量将它传递给我的视图
感谢您修复马丹! $文件 = FCPATH 。 'inc/img/检查/上传/'。 $result['submission_date'];这对我有用。以上是关于将文件下载到桌面,其中字段名等于 codeigniter 中的文件名的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Web 应用程序的登录名和密码数据传递到桌面应用程序而不造成任何安全风险
abap中怎么快速的查找一个结构中的字段,有没啥通用的方法?