2013-04-28 63 views
1

我將「manualy」設置文件設置爲FileLoad存在問題。將文件設置爲FileLoad無法正常工作(C#.net)

因此,這裏是我的情況:

我使用本手冊:http://www.codeproject.com/Tips/101834/How-to-Maintain-FileUpload-Control-s-State-after-P?msg=4176652#xx4176652xx

我需要記住文件加載回發後頁面上。所以我有FileLoad對象和Button將做PostBack。回發之後,我設置了Session [「MenuFile」] = FileLoad ;,會話記錄被創建,但是,當我嘗試將該文件重新設置爲FileLoad對象時,它真的到達那裏(我可以在LoadFile對象上看到該文件)。但在頁面上它是空的。我試圖在FileLoad對象的Load,Init事件上設置它,但沒有任何工作。

這就像FileLoad從會話中成功加載文件並將其「重置」爲默認設置(空白)。

而且我的繼承人代碼:

 <tr> 
     <td> 
      <asp:Label runat="server" Text="Menu:"></asp:Label></td> 
     <td> 
      <asp:FileUpload runat="server" ID="fuMenu"/> 
      <asp:RequiredFieldValidator runat="server" ID="rfvMenu" ControlToValidate="fuMenu" ErrorMessage="Menu file is required" ForeColor="Red">*</asp:RequiredFieldValidator> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <asp:Button runat="server" ID="neco" /> 
      <asp:ValidationSummary runat="server"/> 
     </td> 
    </tr> 

而後面的代碼:

protected void Page_Load(object sender, EventArgs e) 
    { 

     // If first time page is submitted and we have file in FileUpload control but not in session 
     // Store the values to Session Object 
     if (Session["MenuFile"] == null && fuMenu.HasFile) 
     { 
      Session["MenuFile"] = fuMenu; 

     } 
     // Next time submit and Session has values but FileUpload is Blank 
     // Return the values from session to FileUpload 
     else if (Session["MenuFile"] != null && (!fuMenu.HasFile)) 
     { 
      fuMenu = (FileUpload)Session["MenuFile"]; 

     } 
     // Now there could be another sictution when Session has File but user want to change the file 
     // In this case we have to change the file in session object 
     else if (fuMenu.HasFile) 
     { 
      Session["MenuFile"] = fuMenu; 
     } 
    } 

我需要用會話中工作,所以我不能使用這樣的: How to Maintain FileUpload Control’s State after PostBack Information disappears on button click

我真的很絕望,我會很樂意提供任何幫助。 謝謝!

+0

你在使用'UpDatePanel'嗎? – MethodMan 2013-04-28 00:10:16

+0

是的,我忘了提及它。我已經嘗試過,沒有它,結果相同。 :( – Mastenka 2013-04-28 00:34:38

回答

1

出於安全原因,ASP:FileUpload由設計爲只讀。回發後您無法設置任何內容。

回發後,我使用標籤而不是fileupload作爲反饋給用戶,上傳了文件。

我的回發檢查文件上傳的內容,上傳文件,隱藏文件上傳,顯示包含文件名的標籤(存儲在會話對象中),並顯示一個隱藏標籤的刪除按鈕,刪除會話對象,刪除文件並在另一個回發之後再次顯示fileupload。