In my blade file i have attach one file to download by giving directly its path in tag. While i click on that link i have use ajax to remove that file from server,Now i can able to remove the file but i am not getting download-popup.Any one can help. Thanks in advance.
blade file code
<a href="/temp/invalidData.csv" style="position: relative;padding-left: 20px" id="invalid">InvalidData.csv</a>
ajax code
$(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;
});
});
controller code
public function deleteFile(){
$file= public_path(). "/temp/invalidData.csv";
return response()->download($file)->deleteFileAfterSend();
}
Use a simple anchor tag to put a get call to download and delete file e.g.:
<a style="display: none;" href="address_for_request?file={{$file_path}}" id="path" ></a>
then using jquery invoke a click event on anchor tag or make same process with ajax call :
(function(){
if(jQuery('#path').length) {
jQuery('#path')[0].click();
}
})();
auto invoke explained here.
and in controller simple code to download:
if ( isset( $request->file ) ) {
session::forget('pdf');
session::save();
return response()->download(storage_path($request->file))->deleteFileAfterSend(true);
}