而下载和删除文件使用laravel下载弹出不来



在我的blade文件中,我通过在标签中直接给出其路径来附加一个要下载的文件。当我点击该链接时,我已经使用ajax从服务器上删除了该文件,现在我可以删除该文件,但我没有下载。任何人都可以提供帮助。提前谢谢。

刀片文件代码

<a href="/temp/invalidData.csv" style="position: relative;padding-left: 20px" id="invalid">InvalidData.csv</a>

ajax代码

$(document).ready(function(){
$(document).on('click','#invalid',function(){
$.ajax({
type:"post",
url:'/delete-file',
dataType:"json",
success:function(data){
if (data.type == "success") {
} else
{
}
return false;
}
});
return false;
});
});

控制器代码

public function deleteFile(){
$file= public_path(). "/temp/invalidData.csv";
return response()->download($file)->deleteFileAfterSend();

}

使用一个简单的锚点标记来进行get调用以下载和删除文件,例如:

<a style="display: none;" href="address_for_request?file={{$file_path}}" id="path"  ></a>

然后使用jquery调用锚点标签上的点击事件,或者使用ajax调用进行相同的过程:

(function(){
if(jQuery('#path').length) {
jQuery('#path')[0].click();
}
})();

此处解释了自动调用。

并在控制器中下载简单代码:

if ( isset( $request->file ) ) {
session::forget('pdf');
session::save();
return response()->download(storage_path($request->file))->deleteFileAfterSend(true);
}

最新更新