我正在做一个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提供表单标记,但没有用。
答案 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中可以正常工作,我的目的只是给出一个想法。 谢谢