Javascript 单击按钮时无法在laravel ajax中下载文件
当我试图使用下载按钮在LaravelAjax中下载文件时,它工作不正常,我无法下载文件 下面是我的代码:Javascript 单击按钮时无法在laravel ajax中下载文件,javascript,jquery,laravel,Javascript,Jquery,Laravel,当我试图使用下载按钮在LaravelAjax中下载文件时,它工作不正常,我无法下载文件 下面是我的代码: <button type="button" request_id="'.$data->id.'" class="btn btn-success download_request_btn" > Download </button>'; 阿贾克斯: 您可以将头传递给强制文件类型并下载 $file\u pa
<button type="button" request_id="'.$data->id.'" class="btn btn-success download_request_btn" > Download </button>';
阿贾克斯:
您可以将头传递给强制文件类型并下载
$file\u path=存储路径('documents/request/'。$upload\u report);
$headers=array('Content-Type'=>'application/pdf');
return\Response::download($file\u path,$file.pdf',$headers);
在这里,您需要根据您的文件类型添加标题
ref link只是为了对其进行伪编码,相信您的数据会按需要返回。我认为您需要在成功回调中触发下载,并执行以下操作(可能需要根据您的需要进行调整):
我看到您检索了数据,它是否确实检索了数据,但您需要知道在成功回调中要执行的下一步操作?文件正在下载,但名称为image.html
($file\u path,'file.pdf',$headers)
这里第二个参数是名称,它应该是正确的$image\u url=url('storage/documents/request/')$upload_report=$downloadReport->upload_report;return\Response::download($image\u url,$upload\u report,$headers);仍在获取image.htmlit是图像还是pdf?
public function downloadReport(Request $request)
{
$request_id = $request->request_id;
$downloadReport = Upload::where('id', $request_id)->first();
$upload_report = $downloadReport->upload_report;
$headers = array(
'Content-Type: application/pdf',
'Content-Type: application/docx',
);
$url= url('storage/documents/request/'. $upload_report);
return response()->download($url);
}
$(document).on('click', '.download_request_btn', function(){
var request_id = $(this).attr('request_id');
console.log(request_id);
var formData = new FormData();
formData.append('request_id',request_id);
jQuery.ajax({
type: "post",
url: site_url+"/DownloadAjax",
data: formData,
contentType:false,
processData:false,
success: function (res) {
}
});
});
$(document).on('click', '.download_request_btn', function(){
var request_id = $(this).attr('request_id');
console.log(request_id);
var formData = new FormData();
formData.append('request_id',request_id);
jQuery.ajax({
type: "post",
url: site_url+"/DownloadAjax",
data: formData,
contentType:false,
processData:false,
success: function (res) {
const data = res;
const link = document.createElement('a');
link.setAttribute('href', data);
link.setAttribute('download', 'yourfilename.extensionType'); // Need to modify filename ...
link.click();
}
});
});