我正在使用asp:FileUpload
的页面上的表单,以允许用户将文件上传到服务器。我是ASP的新手,我正在使用C#代替我的代码。计划是让用户一次“附加”一个文件,将它们添加到asp:listbox
。最后,当提交表单时,列表框中的文件将保存到服务器。
虽然使用
从FileUpload保存文件似乎很容易 myFileUpload.SaveAs("path");
我遇到了一些困难,想知道如何独立于FileUpload来跟踪文件。我可以使用
轻松获取文件名 Path.GetFileName(myFileUpload.PostedFile.FileName);
但实际上我需要有一些方法来跟踪不仅仅是名字。我的第一个想法可能是使用某种临时文件夹,但文件可能会非常大,所以我不想这样做,因为保存可能需要一段时间。
如何保留文件以便以后可以独立于FileUpload将其保存在服务器上?
答案 0 :(得分:1)
我不会使用ListBox
而是使用实际的<asp:FileUpload>
控件,因此您可以访问该控件的所有方法 - 例如Save
等。
你可以在你的页面上放置一堆这些,只是隐藏除了第一个之外的所有内容。然后按一个按钮说“添加另一个” - 然后单击此按钮show
next
<asp:FileUpload>
控件 - JQuery将是显示下一个{{1}的不错选择那是目前隐藏的。
然后在您的回发中,您可以遍历所有<asp:FileUpload>
控件,如果它<asp:FileUpload>
- 这是控件上的属性 - 然后执行保存等。
如果需要,可以将它们保存到临时文件夹中 - 可能使用HasFile
重命名文件,并在用户会话中存储此GUID
列表,以便您可以在需要时抓取它们。
答案 1 :(得分:1)
调用SaveAs后,您将保存该文件。基本的FileUpload控件不允许您将文件缓存到某个位置,而不是先将其实际上传到服务器。如果您希望上传多个文件而不上传直到最后,您可能需要考虑动态生成FileUpload控件(尽可能多的用户需要)。这样他们就可以选择一次上传一个文件,然后在最后点击“上传”按钮。
但是,这样做有点笨拙。我会寻找一些第三方多重上传控件。我过去曾经使用过PLUpload。