我想在laravel 5中使用ajax从公共文件夹下载文件 我的ajax是
$.ajax({
url:'{{ url() }}/FileManager/downloadfile',
type:'post',
data:{file_name:tableData[0],dir_path:selected_row.attr('dir'),is_cloud:tableData[2]},
success:function(response) {
console.log("success");
},
error:function(e) {
console.log("error");
}
});
我的控制器方法是
public function postDownloadfile(Request $request)
{
$file_path = public_path().'/'.$request->dir_path.$request->file_name;
$download_link = link_to_asset($file_path);
return $download_link;
$file = FileDB::where("title",$request->file_name)->first();
$fileType = mime_content_type($file_path);
$headers = array('Content-Type:'. $fileType,);
return response()->download($file_path);
}
但结果是成功但没有下载文件
答案 0 :(得分:0)
您的postDownloadFile会返回应该打开的网址。所以在你的ajax电话中:
success:function(response) {
// response is the url that should be downloaded
window.location = response;
},
还会忽略控制器代码的最后四行,因为
return $download_link;
在这些行之前调用。