任何想法为什么我的FileUpload显示没有文件?

问题描述:

我有一个简单的FileUpload框,可以接受文件并将它们保存到一个网页上的服务器上的位置,但我正在处理的页面在RadPageView内部有一个窗体视图,在RadMultiPageView 。当我尝试查看FileUpload控件中是否有文件时,每次都会遇到空值,尽管我正在加载文件。以下是我的代码片段,稍微修剪一下。部分问题是,在我在网上找到的所有教程中,用户都在vb中输入了一些关于按钮点击事件的信息,我在其中输入xyz Handles .Updating部分。任何想法为什么我的FileUpload显示没有文件?

我遇到的问题是,当我到达FileUpload1.HasFile时,它显示没有文件,即使我已经上传文件。实际上,它显示Null,就好像我没有正确连接到FileUpload控件。我混淆了不同的方式来连接到FileUpload控件,但没有一个真正起作用。

<telerik:RadMultiPage ID="RadMultiPage1" runat="server" SelectedIndex="0" CssClass="multiPage" 
     BorderColor="Black" BorderStyle="Solid"> 
     <telerik:RadPageView ID="pvMemoDoc" runat="server"> 
      <asp:FormView ID="fvMemoDoc" runat="server" DefaultMode="Edit" DataSourceID="dsMemos" 
       DataKeyNames="coreDocID"> 
       <EditItemTemplate> 
        <table class="tblNoSpace"> 
         [...Other Code...] 
         <%--Begin file upload section--%> 
         <tr> 

          <td class="fieldLabel">File to upload:<br /> 
          </td> 
          <td> 
           <asp:FileUpload ID="FileUpload1" runat="server" Width="600" ToolTip="Browse for file" /> 
          </td> 
         </tr> 
         <tr> 
          <td colspan="2" style="text-align: right"> 
           <asp:Label ID="lblFU1" runat="server" Enabled="false" Visible="false" 
            Text="(only select new file if you wish to replace existing file)"></asp:Label> 
          </td> 
         </tr> 
         <tr> 
          <td> 
           <br /> 
           <br /> 
           <asp:Button ID="btnUpdateMemo" CommandName="Update" runat="server" Text="Update Memo" 
            CausesValidation="true" ValidationGroup="MemoInformation" 
            ToolTip="Save updates" />&nbsp; 
          </td> 
         </tr> 
        </table> 
       </EditItemTemplate> 
      </asp:FormView> 
     </telerik:RadPageView> 

     [...Other Code...] 

    </telerik:RadMultiPage> 

VB代码:

Private Sub DsMemo_Updating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceCommandEventArgs) Handles dsMemos.Updating 
    Dim FileUpload1 As FileUpload = CType(fvMemoDoc.FindControl("FileUpload1"), FileUpload) 
    'Dim FileUpload1 As FileUpload = CType(fvMemoDoc.Controls(0).Controls(0).FindControl("FileUpload1"), FileUpload) 
    'Dim FileUpload1 As FileUpload = CType(fvMemoDoc.Controls(0).FindControl("FileUpload1"), FileUpload) 
    'Dim FileUpload1 As FileUpload = TryCast(updateButton.Parent.Parent.FindControl("FileUpload1"), FileUpload) 

    If FileUpload1.HasFile Then 
     [...Other Code Here..] 
     [...Never gets past FileUpload1.HasFile...] 
    End If 
End Sub 
+0

你使用UpdatePanel或Ajax吗?你如何触发DsMemo_Updating方法? – Win

+0

当我单击更新按钮时,表单中的其余数据是绑定到sql数据源的数据。它有更新命令设置为伸出并使用sql服务器上的存储过程。我想将文件上传信息放入VB中,以便根据用户是否上传文件来触发不同的事件。 – Jolley71717

+0

似乎使用'telerik:AjaxUpdatedControl' – Jolley71717

看来一些修修补补,有与修改与读/写权限的问题之后。 控制工作的方式是它将存储一个临时文件,然后将其从服务器上删除,这就是为什么没有文件显示。

给Web应用程序修改存储临时文件的文件夹的访问权限解决了我的问题。