扫码关注官方订阅号
起因:web站点提供的下载文件都是客户端请求时服务器临时生成的文件,下载过后就会失效,想减轻服务器存储负担.
想实现的效果:
1.文件下载完成后执行删除 2.如果下载过程被终止,则终止后执行删除操作
请问要如何实现这种效果.
人生最曼妙的风景,竟是内心的淡定与从容!
不能在服务器端直接删除么?
这个问题稍微有点复杂了吧,首先你得知道这个文件是什么时间下载完,从你现在的代码来看直接location.href='下载地址'? 你如何确保文件已经被下载完成了呢?
文件小的话可以直接用xhr2下载二进制数据,load完之后再给服务器一个ajax。 大文件还可以用fileSystem,用来实现分片下载、断点续传之类的高级功能。
当然如果LZ要是做后端的,不熟悉这些的话,可能还是服务器判断更简单点吧
有一个叫做callback的东西.............
操作数据库都是后端,JS只不过是进行操作反馈罢了,想的真多。
javascript是客户端,客户端的程序是不能读写任何文件的,如果真的能读写硬盘上的文件,我写个恶意程序你的电脑就崩溃了,或者可以获取你的隐私信息,获取你身份信息,你女友的视频。。。
很简单,不是用a链接提供下载,而是用服务端程序提供下载,下载完删除即可。当然,这是服务端程序。
首先,你不知道是不是真的下载完这个文件了
想到这个问题了 类似的问题是如何检测一个文件被开始下载 和结束 那么 其实这个问题本身就不需要回答 因为用户的session总有超时的时候 1个文件我给你1天时间下载 1天之后起个计划任务把他删掉就完了么 当然非要解决不是没有,如果是同域的时候,可以定期去刷服务端一个特定url,然后在文件下载那个请求中,加入特定的cookies,前端只要刷这个cookies就知道文件开始下载了没有。 类似的据说可以检测文件下载结束,不过我没试过,这也是stackoverflow上给的答案。
直接保存在流里面,传给浏览器下载。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
不能在服务器端直接删除么?
这个问题稍微有点复杂了吧,首先你得知道这个文件是什么时间下载完,从你现在的代码来看直接location.href='下载地址'? 你如何确保文件已经被下载完成了呢?
文件小的话可以直接用xhr2下载二进制数据,load完之后再给服务器一个ajax。
大文件还可以用fileSystem,用来实现分片下载、断点续传之类的高级功能。
当然如果LZ要是做后端的,不熟悉这些的话,可能还是服务器判断更简单点吧
有一个叫做callback的东西.............
操作数据库都是后端,JS只不过是进行操作反馈罢了,想的真多。
javascript是客户端,客户端的程序是不能读写任何文件的,如果真的能读写硬盘上的文件,我写个恶意程序你的电脑就崩溃了,或者可以获取你的隐私信息,获取你身份信息,你女友的视频。。。
很简单,不是用a链接提供下载,而是用服务端程序提供下载,下载完删除即可。当然,这是服务端程序。
首先,你不知道是不是真的下载完这个文件了
想到这个问题了 类似的问题是如何检测一个文件被开始下载 和结束
那么 其实这个问题本身就不需要回答 因为用户的session总有超时的时候 1个文件我给你1天时间下载 1天之后起个计划任务把他删掉就完了么
当然非要解决不是没有,如果是同域的时候,可以定期去刷服务端一个特定url,然后在文件下载那个请求中,加入特定的cookies,前端只要刷这个cookies就知道文件开始下载了没有。
类似的据说可以检测文件下载结束,不过我没试过,这也是stackoverflow上给的答案。
直接保存在流里面,传给浏览器下载。