【发布时间】:2009-04-21 12:32:57
【问题描述】:
我有一个向导控件,其中一个页面包含 FileUpload 控件。我想在向导的最后一页访问文件流,但这似乎不起作用。
据我所知,您只能在使用控件后立即在回发中访问已发布文件的文件流。由于该文件最终将被放入数据库记录中,因此我可以在此时保存它,但如果可能的话,我宁愿避免这种情况。
有人知道这个问题的解决方法吗?
【问题讨论】:
我有一个向导控件,其中一个页面包含 FileUpload 控件。我想在向导的最后一页访问文件流,但这似乎不起作用。
据我所知,您只能在使用控件后立即在回发中访问已发布文件的文件流。由于该文件最终将被放入数据库记录中,因此我可以在此时保存它,但如果可能的话,我宁愿避免这种情况。
有人知道这个问题的解决方法吗?
【问题讨论】:
我自己没有使用过此控件,但由于它基于 HTML 标准 INPUT 控件,我认为您不得不在处理该控件的回发时接收文件。
绕过这一点的困难在于,当您从本地文件系统被有效地沙盒化时,如何从客户端系统中提取文件,因此需要上传控制。
我建议您将文件存储到您的 DB blob(或作为文件系统上的临时文件,可能需要一个唯一的文件名;我发现 GUID 工作得很好),然后使用 Session 对象来保留对过程结束。我能想到的唯一其他不涉及重大工作的替代方法是将文件上传移动到向导的最后一页。
【讨论】:
您可以使用 CSS/jQuery 在客户端管理您的各个向导阶段的显示,而不是继续 POST 回服务器?这样,您唯一的 POST(导致上传)将在向导结束时。
【讨论】: