0

您好我有一种情况,我需要从 FileUpload 控制器上传多个文件并将它们显示在页面上。

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

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

每次用户上传新文件时,该文件都会显示在页面上,这就是功能的外观:

在此处输入图像描述

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

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

唯一想到的是将文件存储在 Session 中,但一位同事建议我应该只将 fileName 存储在 session 中,并将文件 Content 存储在其他地方的字节中。

然后,我实际上获取了文件的路径并将其与文件名一起存储在会话中,但查看 FileUpload 对象,我似乎无法访问文件路径。

我的最后一个想法是将文件内容存储在隐藏的输入中,但是在调试时我意识到每次我上传一个新文件时,Page_Load 都会运行,并且从我对 webforms 的了解很少,这意味着页面刷新会使其失去隐藏的输入有数据。

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

4

1 回答 1

1

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

于 2013-10-07T17:04:39.370 回答