在特定时间后撤销和删除文件 asp.net mvc
revoke and delete file after specific time asp.net mvc
我在我的网站上实现了文件上传,我用这种方式为用户下载 link:[(Random GUID).(File Extensions)]
我想撤销生成的下载link并在10分钟后删除上传的文件,或者在第一个下载请求后撤销下载link .
我怎样才能做到这一点?
要删除文件,您需要编写一个 Windows 服务来轮询文件,或者如果您想保持它真正的基本,您可以在每次加载页面时检查旧文件。
这是基本版本:
当用户请求下载时,检查目标目录中所有文件的创建日期。如果文件超过 10 分钟 - 将其删除。清理完文件后,就可以简单地检查一下用户请求的目标文件是否仍然存在
您可以使用以下方法检查创建日期和删除文件:
string[] files = System.IO.Directory.GetFiles(@"C:\_Temp", "*.txt");
foreach (string file in files) {
DateTime creation = System.IO.File.GetCreationTime(file);
if (((TimeSpan)(DateTime.Now - creation)).TotalMinutes > 10) {
System.IO.File.Delete(file);
}
}
注意:确保目标目录中没有任何重要文件。更改“*.txt”以匹配您上传文件的文件格式。
接下来,检查请求的文件是否仍然存在:
if (File.Exists(@"C:\test.txt")) {
// process file here
}
希望对您有所帮助:)
我在我的网站上实现了文件上传,我用这种方式为用户下载 link:[(Random GUID).(File Extensions)]
我想撤销生成的下载link并在10分钟后删除上传的文件,或者在第一个下载请求后撤销下载link .
我怎样才能做到这一点?
要删除文件,您需要编写一个 Windows 服务来轮询文件,或者如果您想保持它真正的基本,您可以在每次加载页面时检查旧文件。
这是基本版本:
当用户请求下载时,检查目标目录中所有文件的创建日期。如果文件超过 10 分钟 - 将其删除。清理完文件后,就可以简单地检查一下用户请求的目标文件是否仍然存在
您可以使用以下方法检查创建日期和删除文件:
string[] files = System.IO.Directory.GetFiles(@"C:\_Temp", "*.txt");
foreach (string file in files) {
DateTime creation = System.IO.File.GetCreationTime(file);
if (((TimeSpan)(DateTime.Now - creation)).TotalMinutes > 10) {
System.IO.File.Delete(file);
}
}
注意:确保目标目录中没有任何重要文件。更改“*.txt”以匹配您上传文件的文件格式。
接下来,检查请求的文件是否仍然存在:
if (File.Exists(@"C:\test.txt")) {
// process file here
}
希望对您有所帮助:)