2

我有一个 Flash 上传组件,我想用它来上传多个文件。我在 MVC 应用程序中使用它,我想要发生的是用户选择他们想要上传的文件,上传它们,然后显示一个页面,显示他们上传的所有文件,以便他们可以添加描述并选择在哪里保存它们,然后保存文件。

在上传文件的那一刻,flash 组件调用一个控制器来处理文件,这个位工作正常,我可以获取上传的文件并用它们做我喜欢的事情。问题是,一旦控制器完成工作,我不能只重定向到视图,因为它是调用控制器的 flash 组件,而不是页面,所以当你尝试这样做时没有任何反应。

我曾尝试将文件保存在会话中,然后在上传完成后使用 Flash 动作脚本中的一些代码转发用户,但这不起作用,会话总是显示为空。我还考虑过将文件实际保存到临时位置,然后在显示页面上仅列出临时位置中的所有文件,但这将涉及将文件保存两次,一次保存到临时目录,然后保存到实际位置用户想要放置它们,我认为这会很慢。

对最好的方法有什么想法吗?

4

1 回答 1

0

您的网站是否使用基于 cookie 的身份验证?如果是这样,则 Flash 上传器需要在上传时包含身份验证 cookie,否则上传将被视为来自新用户 - 这将解释您在会话状态下的空值。如果您无法通过 Flash 发布 cookie,那么您必须在上传 URL 中识别用户。

您应该将会话状态保持在最低限度,甚至最好根本不使用,因此在其中存储大量数据(例如图像)是一个坏主意。

通过我们的应用程序,我们将所有上传的文件保存到数据库中,然后为它们提供一个唯一的 Guid,然后用于稍后检索/显示它们。在数据库中,图像可能与用户相关联,并且在您的情况下被标记为刚刚上传,这样当您将用户重定向到附加信息页面时,您就知道要显示哪些图像。

但这将涉及两次保存文件,一次保存到临时目录,然后保存到用户想要放置它们的实际位置

关于文件在服务器上的保存位置,您不应允许用户确定文件的保存位置。

于 2009-07-27T00:50:23.280 回答