asp:FileUpload - 跟踪要稍后保存的文件

时间:2013-06-14 15:53:51

标签: c# asp.net .net

我正在使用asp:FileUpload的页面上的表单,以允许用户将文件上传到服务器。我是ASP的新手,我正在使用C#代替我的代码。计划是让用户一次“附加”一个文件,将它们添加到asp:listbox。最后,当提交表单时,列表框中的文件将保存到服务器。

虽然使用

从FileUpload保存文件似乎很容易

myFileUpload.SaveAs("path");

我遇到了一些困难,想知道如何独立于FileUpload来跟踪文件。我可以使用

轻松获取文件名

Path.GetFileName(myFileUpload.PostedFile.FileName);

但实际上我需要有一些方法来跟踪不仅仅是名字。我的第一个想法可能是使用某种临时文件夹,但文件可能会非常大,所以我不想这样做,因为保存可能需要一段时间。

如何保留文件以便以后可以独立于FileUpload将其保存在服务器上?

2 个答案:

答案 0 :(得分:1)

我不会使用ListBox而是使用实际的<asp:FileUpload>控件,因此您可以访问该控件的所有方法 - 例如Save等。

你可以在你的页面上放置一堆这些,只是隐藏除了第一个之外的所有内容。然后按一个按钮说“添加另一个” - 然后单击此按钮show next <asp:FileUpload>控件 - JQuery将是显示下一个{{1}的不错选择那是目前隐藏的。

然后在您的回发中,您可以遍历所有<asp:FileUpload>控件,如果它<asp:FileUpload> - 这是控件上的属性 - 然后执行保存等。

如果需要,可以将它们保存到临时文件夹中 - 可能使用HasFile重命名文件,并在用户会话中存储此GUID列表,以便您可以在需要时抓取它们。

答案 1 :(得分:1)

调用SaveAs后,您将保存该文件。基本的FileUpload控件不允许您将文件缓存到某个位置,而不是先将其实际上传到服务器。如果您希望上传多个文件而不上传直到最后,您可能需要考虑动态生成FileUpload控件(尽可能多的用户需要)。这样他们就可以选择一次上传一个文件,然后在最后点击“上传”按钮。

但是,这样做有点笨拙。我会寻找一些第三方多重上传控件。我过去曾经使用过PLUpload。