asp:FileUpload -跟踪文件保存以后

本文关键字:保存 文件 跟踪 FileUpload asp | 更新日期: 2023-09-27 18:18:21

我正在使用asp:FileUpload允许用户将文件上传到服务器的页面上的表单上工作。我是新的ASP和使用c#为我的代码背后。计划是让用户每次"附加"一个文件,将它们添加到asp:listbox中。最后,当表单提交时,列表框中的文件被保存到服务器。

通过使用

从FileUpload中保存文件似乎很容易

myFileUpload.SaveAs("path");

我遇到了一些困难,弄清楚如何保持独立于FileUpload的文件跟踪。我可以使用

轻松获取文件名

Path.GetFileName(myFileUpload.PostedFile.FileName);

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

我如何保持文件,以便我可以保存在服务器上独立于FileUpload以后?

asp:FileUpload -跟踪文件保存以后

比起使用ListBox,我会使用实际的<asp:FileUpload>控件,这样您就可以访问该控件的所有方法-例如Save等。

你可以在你的页面上放一堆这样的图片,然后隐藏除第一个之外的所有图片。然后有一个按钮说"添加另一个"-然后点击这个按钮show next <asp:FileUpload>控件- JQuery将是一个很好的选择来显示下一个<asp:FileUpload>,目前是隐藏的。

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

如果需要,将它们保存到一个临时文件夹中——也许用GUID重命名文件,并将GUID列表存储在用户会话中,以便您可以在需要时获取它们。

调用savea后,就保存了文件。基本FileUpload控件不允许您在不首先将文件上传到服务器的情况下将文件缓存到某个地方。如果您想要上传多个文件而不上传到最后,您可能需要研究动态生成FileUpload控件(用户想要多少就有多少)。这样他们就可以一次选择一个文件上传,然后在最后点击"上传"按钮。

这样做有点笨拙。我会找一些第三方的多重上传控件。我以前用过PLUpload