2011-01-14 4 views
0

사용자가 여러 이미지를 자신의 게시물에 업로드 할 수있는 웹 사이트 (umbraco 기반)를 만들고 있습니다. 내가 지금까지 가지고있는 것 :ASP.NET 다중 파일 업로드

<asp:TextBox MaxLength="1" Width="29px" runat="server" ID="txtImageAmount" />&nbsp; 
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:Button ID="btnSubmitImageAmount" runat="server" Text="Vis upload felter" 
      onclick="btnSubmitImageAmount_Click" /> 

     <asp:Label Visible="false" ID="lblImageAmountError" ForeColor="Red" runat="server" Text="Maks 3 billeder"></asp:Label> 
     <asp:Panel ID="pnlUploadControls" Visible="false" runat="server"></asp:Panel> 
    </ContentTemplate> 
</asp:UpdatePanel> 

그래서 사용자는 사이트에서 파일 업로드 상자 (최대 3 개)를 선택할 수 있습니다.

내 C 번호는 다음과 같습니다

protected void btnSubmitImageAmount_Click(object sender, EventArgs e) 
{ 
    int amountOfControls = Convert.ToInt32(txtImageAmount.Text); 
    if (amountOfControls <= 3) 
    { 
     for(int i = 0; i < amountOfControls; i++) 
     { 
      FileUpload fUl = new FileUpload(); 
      fUl.ID = i.ToString(); 
      fUl.Width = 300; 
      Label lblLinebreak = new Label(); 
      lblLinebreak.Text = "<br />"; 
      pnlUploadControls.Controls.Add(fUl); 
      pnlUploadControls.Controls.Add(lblLinebreak); 
      pnlUploadControls.Visible = true; 
     } 
    } 
    else 
    { 
     lblImageAmountError.Visible = true; 
    } 
} 

그래서 기본적으로 나는 사용자가 원하는 얼마나 많은에 따라 패널에 새는 FileUpload 컨트롤을 추가 해요. .. 이상한 일을 내가 패널에서 컨트롤의 크기가 0인지 확인하기 위해 노력했다

List<Media> images = new List<Media>(); 

    foreach (FileUpload fUl in pnlUploadControls.Controls) 
    { 
     Media m = UmbracoSave(fUl); 
     if (m != null) 
     { 
      images.Add(m); 
     }  
    } 

    if (images.Count > 0) 
    { 
     RelationType ad2media = RelationType.GetByAlias("ad2media"); 
     foreach (Media img in images) 
     { 
      Relation.MakeNew(adDoc.Id, img.Id, ad2media, adDoc.Text + " is related to " + img.Text); 
     } 
    } 

그리고 것 같다 :

지금, 내 저장 버튼에서 나는 다음과 같은 코드가 있습니다 UmbracoSave 메서드에서 반환 된 Media 항목이 null인지 확인하면 그렇지 않습니다.

또한,

사람이 되거 수 있습니다 .. 목록 (이미지) 카운트가 0이라고 말한다? :-)

도움을 주시면 대단히 감사하겠습니다!

모든 최선을,

답변

3

당신은 UpdatePanel의 표준는 FileUpload 컨트롤을 넣을 수 없습니다. 그것은 단지 작동하지 않습니다. AJAX 호환 파일 업로드 구성 요소를 살펴보십시오.

+0

예. Umbraco 용 Gecko Uploadify를 사용할 수 있어야합니다 : http://our.umbraco.org/projects/website-utilities/gecko-uploadify – sebastiaan

+0

안녕하세요, 귀하의 답변을 주셔서 감사합니다 :) 나는 당신이 asp.net에 관한 정보를 제공 할 수 있다고 생각했습니다. 컨트롤을 UpdatePanel,하지만 오 잘 .. 나는 내 패널 버튼 (pnlUploadControls) 제어 컬렉션은 0입니다 (: – bomortensen

+0

@ sebastiaan : 고마운 친구,하지만 내게 저장 버튼을 클릭 이벤트에 대한 updatepanel 삭제 했어요 Umbraco 백엔드 관리가 아닌 사이트 자체에서 일어날 수 있습니다. – bomortensen