2

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

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

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

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

4

2 回答 2

0

您要在新窗口或选项卡中打开的唯一方法是删除重定向并在感谢页面上添加指向该文件的链接,其中 target="_blank"。

于 2013-10-24T13:27:12.373 回答
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)。检查 Session 并在 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 中运行良好,我的目的只是给出一个想法。谢谢

于 2020-03-04T07:06:27.727 回答