我的代码是这样的:
<a href="javascript:;" onclick="showAjaxPdf('{{ $row->file_path }}');"><i class="fa fa-file-pdf-o"></i></a>
我的javascript代码是这样的:
function showAjaxPdf(file_path){
//example : file_path = assets/images/myfile.pdf
$.post("news/test", { name: file_path } );
}
我在控制器中的功能测试:
public function postTest($file_path)
{
return response()->download($file_path);
}
当我点击pdf图标时,无法将参数从javascript发送到控制器
我希望,点击pdf图标时,显示如下:http://imgur.com/uhPfOWL
谢谢
答案 0 :(得分:0)
您要发布参数name
而不是$file_path
use Illuminate\Http\Request;
public function postTest(Request $request)
{
$file_path = $request->input('name');
return response()->download($file_path);
}
确保您的$file_path
对您的服务器有意义
解析服务器公用文件夹public_path()
上的路径将为您提供<driver>/<dir>/<app dir>/public/images/smail.png
,然后您可以下载
return response()->download(public_path() + $file_path);
答案 1 :(得分:0)
这是在Laravel 5中检索输入的方法。
public function postTest()
{
$file_path = Request::input('name'); // get the value that was posted
return response()->download($file_path); // return something
}
此外,我假设您的routes.php文件中有“新闻/测试”路由到postTest
答案 2 :(得分:0)
<a href="javascript:;" onclick="showAjaxPdf('{!! $row->file_path !!}')">