在新窗口或选项卡中打开下载文件

时间:2013-10-24 12:11:46

标签: php joomla download joomla2.5 meta-tags

我正在做一个joomla组件编程。我需要在新标签中打开我的下载文件。文件下载的代码是:

<meta http-equiv="Refresh" content="3;URL=http://localhost/joomla/images/uploads/<?php echo $filee; ?> " >

我使用此代码代替header("Content-Disposition: attachment; filename=".$filee.""); ,我需要在表单提交和下载开始之间在页面上显示一些消息。标题不允许这样。

下载适用于meta但不是在当前窗口中打开文件,如何在新选项卡中打开它。 我尝试在此元标记之前使用target = _blank提供表单标记,但没有用。

2 个答案:

答案 0 :(得分:0)

您要在新窗口或标签中打开的唯一方法是删除重定向并在目标=“_空白”的感谢页面上添加指向该文件的链接。

答案 1 :(得分:0)

经过多次搜索,我通过四个步骤将请求重定向到其他页面后实现了在新窗口中下载pdf文件的想法-

1). Session::flash('myfileNameThatStoredInDb',  $orders->order_invoice);

2)。在控制器中使用以下代码创建函数

public function pdfDownload($image_url){

        header('Content-Type: application/octet-stream');
        header("Content-Transfer-Encoding: Binary");
        header("Content-disposition: attachment; filename=\"" . basename($image_url) . "\"");
        readfile(\Url('storage').'/invoice'.'/'.$image_url); 
    }

3)。为上述方法创建路由。

Route::get('/pdfdownload/{url}',"OrderController@pdfDownload");

4)。检查会话并在html文件标签中获取其值,然后将其附加到控制器的方法路径

@if(Session::has('download.in.the.next.request'))    
        <meta http-equiv="refresh" content="5; url={{ asset('pdfdownload/'.Session::get('download.in.the.next.request')) }}">
    @endif

注意->这段代码在Laravel中可以正常工作,我的目的只是给出一个想法。 谢谢