我想知道MVC4(.net 4.5)是否可以将文件上传到服务器并将其保存到内存中。然后在单独的表单帖子中,收集该文件并在那时处理它。
我需要能够在我的页面的一部分上传文件,然后能够在另一部分上提交一些表单详细信息,但能够访问我刚刚上传的文件。出于逻辑原因,我无法在主窗体上同时发布文件。他们必须分开。
答案 0 :(得分:2)
虽然您可以将文件存储在内存会话中,但这样做有一些风险:
如果这些不是问题,请随时将文件存储在会话中:
Session["UploadedFile"] = someByteArray;
如果这些是关注点,那么我建议:
答案 1 :(得分:1)
另一个答案有一些很好的解释。我只想添加一些东西。
在第一页上,将文件保存在HD上,但也将文件名/ id存储在数据库中。现在您有一个ID指向当前上传的文件名。此ID可以在具有type =“hidden”输入的页面之间或通过Session变量进行传输。
如果您没有数据库,则文件名可以是ID。 例如:生成一个guid,用这个guid ex保存文件名:[guid] .xls
答案 2 :(得分:0)
假设您将保存第二个表单中的表单数据以及保存文件(或二进制文件本身)的路径,另一个选项是将数据保存两次。
在发布上传的文件后,按照您最初的计划保存文件,并获取该新记录的ID /参考。
您的下一个表单只是将更新的表单数据保存到相同的ID。