如何在asp.net中存储文件以进行处理

时间:2011-09-13 23:12:26

标签: asp.net file temporary-files

Path.GetTempFileName非常接近我想要的。但我不想重新启动机器并丢失这些文件(因为它们会是临时的)。我需要的是一个唯一的文件名。什么是最好的方法呢?我正在考虑将一个密钥插入数据库,提交它们,但我不认为它是一个好主意。

我在考虑使用随机数,但我总是担心在服务器上使用随机数。因为两个请求可以同时发生获得相同的数字(假设我不锁定它会使它变慢)。那么,我该怎么办?

我计划使用文件名,以便我可以从用户发布请求中获取文件并将其保存到文件中。然后我将其放入队列中进行处理,这可能是立即,从现在开始的一秒或者如果出现问题则以分钟/小时为单位。

2 个答案:

答案 0 :(得分:1)

Guid

怎么样?
var appData = Server.MapPath("~/"App_Data);
var filename = Path.Combine(appData, string.Format("{0}.tmp", Guid.NewGuid()));

或某些时间戳或其他内容:

var appData = Server.MapPath("~/"App_Data);
var filename = Path.Combine(appData, string.Format("{0:dd_MM_yyyy_fffff}.tmp", DateTime.Now));

答案 1 :(得分:1)

使用GUID存储文件名?

如果你期待很多文件。我将guid破折号替换为目录结构。

d524532e-8337-422f-925c-14500972c843.jpg

变为

\d524532e\8337\422f\925c\14500972c843.jpg