2013-10-07 25 views
0

嗨我有一种情况,我需要从FileUpload控制器上传多个文件并将它们显示在页面上。Mantaining状态的文件列表,而不将它们存储在数据库或文件系统中

这可能是一个愚蠢的问题,因为我没有任何webforms的经验,但我需要能够维护页面上的文件,而不必将它们存储在数据库或服务器上,直到用户实际按下发布按钮。

我的经验与ASP.NET MVC和WEB API有关。

每当用户上传显示的页面,这是功能性的外观上的文件中获取的新文件:

enter image description here

当使用按下按钮,我应该能够拥有所有的访问这些文件可以将它们存储在数据库和文件系统中。

由于数据库的设计方式,我可以将文件存储在数据库中,以便我可以跟踪它,直到用户在teaxtarea中写入内容并发布数据。

唯一想到的是将文件存储在Session中,但同事建议我应该只在会话中存储文件名,并将文件内容以字节的形式存储在别处。

然后,我真的得到文件的路径,并将它与fileName一起存储在会话中,但看着FileUpload对象,我似乎没有访问filePath。

我最后的想法是将文件格式保存在一个隐藏的输入中,但在调试时我意识到每次上传一个新文件时,Page_Load都会被破坏,并且从我知道的webforms中得知,意味着页面刷新使其变得松散隐藏的输入与数据一起。

任何人都可以建议解决这个问题?

回答

1

我肯定会不是存储会话中的文件。将文件存储在具有GUID的临时文件夹中(因为我们希望它们是唯一的),并将这些名称存储在会话中是个不错的主意。如果您想保留原始文件名,则可以将GUID附加到文件名中。您只需要记住在完成后从临时文件夹中删除文件,并且可能(为了增加安全性)运行计划任务,从temp文件夹中删除不需要的文件。

相关问题