如何从单击按钮的视图中下载文件?

基兰·麦格伦(Kieran McClung)

我需要在查看文件中添加一个按钮,该按钮允许用户从网站的前端下载文件。重新:一切正常:显示数据,但是我不确定如何根据变量中的数据提供可下载文件。

这是从视图文件生成的数据。

<?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
';
?>

我需要以某种方式force_download()在视图文件中单击锚点时使用CodeIgniter 我尝试添加<?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 }
一体

您是否考虑过在服务器级别而不是在应用程序级别处理此问题?您的网络服务器可以/应该配置为返回.vcf作为附件。相关:stackoverflow.com/questions/5116772/…

也许EE会覆盖这些标头吗?如果是这样,那么这里有一个免费的EE扩展,允许您扩展模板类型(每种模板都可以具有自己的mime类型):

http://devot-ee.com/add-ons/template-image-mime-type

您可以轻松地修改此扩展名,以包括所需的下载处理。

我认为您想要:application/octet-stream.vcf

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在MVC 4中单击按钮上的新选项卡中下载文件

来自分类Dev

单击按钮下载文件

来自分类Dev

如何在Watir中下载文件?

来自分类Dev

如何在webView中下载文件?

来自分类Dev

如何在Codeigniter中下载文件?

来自分类Dev

如何在Android中下载文件

来自分类Dev

如何在webView中下载文件?

来自分类Dev

如何允许在 Webview 中下载文件?

来自分类Dev

如何允许在 drupal 中下载文件?

来自分类Dev

如何在不使用按钮的情况下开始在vaadin中下载文件?

来自分类Dev

如何从强制下载的链接中下载文件

来自分类Dev

在SPA中下载文件

来自分类Dev

在Mojolicious中下载文件

来自分类Dev

在DoFn中下载文件

来自分类Dev

在 r 中下载文件

来自分类Dev

wget从文件列表中下载文件,如何为每个下载文件指定名称?

来自分类Dev

如何使用Selenium在点击事件中下载文件?

来自分类Dev

如何在Spring MVC和MongoDB中下载文件

来自分类Dev

如何使用phpstorm在ftp中下载文件

来自分类Dev

如何在linux / windows中下载文件的子部分?

来自分类Dev

如何在C#中下载文件名?

来自分类Dev

如何使用Liferay在portlet中下载文件或InpuStream?

来自分类Dev

如何在laravel 5.4中下载文件

来自分类Dev

用户单击时如何下载文件

来自分类Dev

单击Play Framework上的按钮后强制下载文件

来自分类Dev

使用单击按钮上的curl下载文件

来自分类Dev

在Struts 2中下载文件

来自分类Dev

无法在UpdatePanel中下载文件

来自分类Dev

在Android Webview中下载文件