我需要在我的视图文件中添加一个按钮,允许用户从网站前端下载文件。一切都很好,重新显示数据,但我不知道如何根据变量中的数据提供可下载的文件。
这是从视图文件中生成的数据。
<?php
$vCardData[$i] = '
BEGIN:VCARD
VERSION:4.0
N:'.${'data'.$i}['l_name'].';'.${'data'.$i}['f_name'].';;;
FN:'.${'data'.$i}['title'].' '.${'data'.$i}['f_name'].' '.${'data'.$i}['l_name'].'
ORG:'.${'data'.$i}['company'].'
TEL;TYPE=work,voice;VALUE=uri:tel:'.${'data'.$i}['company_contact_number'].'
TEL;TYPE=home,voice;VALUE=uri:tel:'.${'data'.$i}['number'].'
ADR;TYPE=work;LABEL="'.${'data'.$i}['address_1'].' '.${'data'.$i}['address_2'].'n'.${'data'.$i}['city'].', '.${'data'.$i}['county'].' '.${'data'.$i}['post_code'].'n'.${'data'.$i}['county'].'"
:;;'.${'data'.$i}['address_1'].' '.${'data'.$i}['address_2'].';'.${'data'.$i}['city'].';'.${'data'.$i}['county'].';'.${'data'.$i}['post_code'].';'.${'data'.$i}['county'].'
EMAIL:'.${'data'.$i}['email'].'
REV:'.time().'
END:VCARD
';
?>
我需要在视图文件中单击锚点时以某种方式使用CodeIgniter force_download()
。我已经尝试将<?php echo site_url( 'controller/function' ); ?>
添加到锚标记中,但这只是将我引导到网站上的一个页面http://example.com/controller/function我想这是因为它是从前端调用的。
有什么办法做到这一点吗?
进一步注意:我的控制器正在从数据库中选择所有数据,并将其传递给我的address_book视图。在address_book视图中,我有以下内容:
<?php for ($i = 0; $i < $count; $i++) { ?>
<div class="col-sm-6 contact_card">
<h4><?php echo ${'data'.$i}['title']; echo ${'data'.$i}['f_name']; echo ${'data'.$i}['l_name']; ?></h4>
<?php if (${'data'.$i}['email']) { echo 'e: <a href="mailto:'.${'data'.$i}['email'].'">'.${'data'.$i}['email'].'</a>'; }
if (${'data'.$i}['number']) { echo '<p>t: '.${'data'.$i}['number'].'</p>'; }
$vCardData[$i] = '
BEGIN:VCARD
VERSION:4.0
N:'.${'data'.$i}['l_name'].';'.${'data'.$i}['f_name'].';;;
FN:'.${'data'.$i}['title'].' '.${'data'.$i}['f_name'].' '.${'data'.$i}['l_name'].'
ORG:'.${'data'.$i}['company'].'
TEL;TYPE=work,voice;VALUE=uri:tel:'.${'data'.$i}['company_contact_number'].'
TEL;TYPE=home,voice;VALUE=uri:tel:'.${'data'.$i}['number'].'
ADR;TYPE=work;LABEL="'.${'data'.$i}['address_1'].' '.${'data'.$i}['address_2'].'n'.${'data'.$i}['city'].', '.${'data'.$i}['county'].' '.${'data'.$i}['post_code'].'n'.${'data'.$i}['county'].'"
:;;'.${'data'.$i}['address_1'].' '.${'data'.$i}['address_2'].';'.${'data'.$i}['city'].';'.${'data'.$i}['county'].';'.${'data'.$i}['post_code'].';'.${'data'.$i}['county'].'
EMAIL:'.${'data'.$i}['email'].'
REV:'.time().'
END:VCARD
';?>
<a href="<?php echo site_url('address_book/vcard') ?>">Download vCard</a>
</div>
<?php }
您是否考虑过在服务器级别而不是在应用程序中处理此问题?您的Web服务器可以/应该配置为以附件形式返回.vcf。相关:stackoverflow.com/questions/5116772/…
也许EE覆盖了那些标题tho?如果是这样的话,这里有一个免费的EE扩展,允许您扩展模板类型(每个模板类型都可以有自己的mime类型):
http://devot-ee.com/add-ons/template-image-mime-type
您可以很容易地修改此扩展,以包括您需要的下载处理。
我想你想要:.ccf 的application/octet-stream