在特定时间后撤销和删除文件 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
}

希望对您有所帮助:)