2017-04-12 7 views
0

파일을 받아 들여 하나의 웹 페이지에있는 서버의 위치에 저장할 수있는 간단한 FileUpload 상자가 있습니다. 그러나 지금 작업하고있는 페이지는 RadPageView 내부의 양식보기를 RadMultiPageView 내부에 가지고 있습니다. . FileUpload 컨트롤에 파일이 있는지 확인하려고 할 때마다 파일에로드되는 동안 null 값이 매번 충족됩니다. 다음은 약간 수정 한 코드의 일부입니다. 문제의 일부는 온라인에서 찾은 모든 자습서에서 사용자가 버튼 클릭 이벤트에 대한 VB에서이 정보 중 일부를 입력한다는 것입니다. 여기서는 xyz Handles .Updating 섹션에 입력합니다.내 FileUpload에 파일이 표시되지 않는 이유는 무엇입니까?

필자가 실행 한 프롤렘은 FileUpload1.HasFile에 도착하면 파일을 업로드했음을 보여줍니다. 사실 FileUpload 컨트롤에 제대로 연결되지 않은 것처럼 Null을 보여줍니다. 나는 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

답변

0

그것은 약간의 읽기/쓰기 권한 대 수정에 문제가 있다고 땜질 후에 나타납니다. 컨트롤이 작동하는 방식은 임시 파일을 저장 한 다음 서버에서 삭제하는 것이므로 파일이 표시되지 않는 것입니다.

임시 파일이 저장된 폴더에 대한 웹 응용 프로그램 수정 권한을 부여하면 내 문제가 해결됩니다.