php - 下载pdf后重定向查看
问题描述
我有一个视图viewarticles。在那里,存在一个锚标签,用于下载 PDF。当我第一次单击链接时,会以模式打开一个注册表单,如果用户提交了他的详细信息,那么它将继续控制器并保存详细信息,然后创建会话,然后下载 PDF。但我也需要返回相同的视图。创建重定向会话后,无需再次填写详细信息。意味着每次填写表格并下载 PDF 直到会话有效。
@foreach($articles as $article)
<tr class="table-active">
@if(session()->has('username'))
<td>
<a href="{{ route('downloadpdf',['jname' => $article->image]) }}"><span class="badge badge-primary">Download PDF</span></a>
@else
<a href="#" data-toggle="modal" data-target="#login-modal{{ $article->id }}">Login</a>
@endif
</td></tr>
<!-- Register modal -->
<div class="modal fade" id="login-modal{{ $article->id }}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
<div class="modal-dialog">
<div class="loginmodal-container">
<h1>Article Download Request</h1><br>
<form method="POST" action="{{ route('insertdownloadpdf') }}">
{{csrf_field()}}
<input type="text" name="name" placeholder="Name">
<input type="text" name="pdfname" placeholder="Name" value="{{ $article->image }}">
<input type="text" name="volume_id" placeholder="Name" value="{{ $article->volume_id }}">
<input type="email" name="email" placeholder="Email">
<input type="text" name="designation" placeholder="Designation">
<input type="text" name="organisation" placeholder="Organisation/College">
<input type="number" name="number" placeholder="Phone Number">
<input type="submit" class="login loginmodal-submit" value="Submit">
</form>
</div>
</div>
</div>
@endforeach
我的路线是:
Route::POST('insertdownloadpdf','foruserview@insertdownloadpdf')->name('insertdownloadpdf');
控制器方法是:
public function insertdownloadpdf(Request $request)
{
$userdetails = new userdetail;
$userdetails->name = $request->name;
$userdetails->email = $request->email;
$userdetails->designation = $request->designation;
$userdetails->organisation = $request->organisation;
$userdetails->number = $request->number;
$userdetails->save();
$pdffile = $request->pdfname;
session()->put('username','Successfully Inserted');
$file= public_path(). "/storage/upload_pic/"; //path of your directory
$headers = array(
'Content-Type: application/pdf',
);
return Response::download($file.$pdffile, 'articles.pdf', $headers);
$journals = journal::all();
$articles = article::where('volume_id',$request->volume_id)->with('journal','volume')->get();
return view('viewarticles',compact('journals','articles'));
}
但它不起作用。如何下载 PDF 文件然后返回同一页面。
解决方案
改变
return Response::download($file.$pdffile, 'articles.pdf', $headers);
至
Response::download($file.$pdffile, 'articles.pdf', $headers);
在一个方法中只能返回一次。
推荐阅读
- javascript - 通过 PHP 在 HREF 中的 Vue.js 数据
- python - 在 Python 3.7 中与 Rasterio 合并
- c# - Xamarin Forms:图像网格在元素行之间有太多空间
- fonts - 我如何从 Firefox 开发者工具中下载/提取字体
- javascript - 为什么 Vue Web 组件样式不起作用?
- python - 带有条件的 Pandas sample()
- c# - 如何将波斯日期字符串转换为日期时间格式
- python - Python转换皮秒和飞秒没有以秒为单位给出正确的时间
- java - 如何检查(类型变量)类
正在实现接口 SomeInterface >? - mysql - Shell 脚本 - 从 mysql 显示变量中获取提取值