php - 使用 laravel 下载和删除文件时弹出不来
问题描述
在我的刀片文件中,我通过在标签中直接给出其路径来附加一个文件以供下载。当我单击该链接时,我使用 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();
}
解决方案
使用简单的锚标记来调用下载和删除文件,例如:
<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();
}
})();
自动调用解释here。
并在控制器中下载简单代码:
if ( isset( $request->file ) ) {
session::forget('pdf');
session::save();
return response()->download(storage_path($request->file))->deleteFileAfterSend(true);
}
推荐阅读
- javascript - 笑话。测试在一个函数中执行 POST 和 fetch 的异步函数
- mysql - 在 WHERE 子句中使用来自 SELECT 的 COALESCE 的别名
- c++ - 现代 Cpp 项目中的 I18n
- java - 查询具有特定条件的 Spring DATA
- laravel - Laravel:更新作曲家错误并创建项目
- android - 使用 Gluon-mobile ShareService 从 android 上的应用程序打开 PDF 时出现异常
- twig - ServiceNotFoundException:依赖于不存在的服务“twig”
- javascript - 如何将通过 javascript 编码为 base64 字符串的文件转换为 Ruby 文件对象?
- go - 构建Android时在golang中读取Makefile变量
- ansible - Ansible在dict中组合数组