2010-09-03 27 views
2

正如它声明的,我需要上传文件,然后在第二页的pre_init事件中使用它。服务器生命周期可以防止这种情况发生(因为pre_init发生在事件处理程序之前),所以我可以看到的唯一方法是使用page1上载文件,然后对page2执行response.redirect,以便我可以使用该文件pre_init。但是,这似乎是a),并且b)需要我将上传的文件名传递到第二页。需要上传文件,并在pre-init事件中使用它

反正有没有,或者我会不得不喜欢和包袱呢? (我需要pre_init事件添加步骤到wizardcontrol,并反序列化文件以获取对象添加到它)。

感谢

+0

你说,“我需要通过上传的文件名。” *什么*上传文件名?你打算将文件存储到临时目录吗?仅供参考,FileUploadControl的文件名属性不是**服务器端文件名。 – 2010-09-03 14:28:39

回答

2

您应该能够直接从pre_init使用Request.Files:

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    HttpPostedFile file = Request.Files["IDOfFileUploadControl"]; 
} 
+0

干杯,这是我所需要的,不知道Request.Files – Psytronic 2010-09-03 14:48:43

0

跨页投递似乎是一个解决方案。你可以从以前的页面这样FileUpload控件:

if (Page.PreviousPage != null) 
{ 
    FileUpload prev = 
     (FileUpload)Page.PreviousPage.FindControl("FileUpload1"); 
    if (prev != null) 
    { 
     // Operations. 
    } 
} 

如果它工作在Pre_Init事件,但值得一试我还没有试过。

有关跨页投递的详细信息:

http://msdn.microsoft.com/en-us/library/ms178139.aspx

相关问题