2009-12-18 13 views
2

J'utilise le téléchargement de fichiers sur mon site. Je télécharge le mot Document (Doc, Docx). Soudain, ça ne marche pas. Il n'obtient pas le nom de fichier. Il montre vide !!! Mon code est le suivant:Le téléchargement de fichier ne fonctionne pas

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="ContentPlaceHolder1"> 

<table width="100%" align="center"> 
    <tr> 
     <td style="height: 21px" align="center"> 
      <span class="lbl"></span> 
      <asp:UpdatePanel ID="UpdatePanel2" runat="server"> 
       <ContentTemplate> 
        <asp:Button ID="btnResumedload" Text="Download Resume" runat="server" BackColor="Maroon" 
         ForeColor="White" Font-Bold="true" OnClick="btnResumedload_Click" Height="27px" 
         Width="195px" /> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
     </td> 
    </tr> 
    <tr> 
     <td align="center"> 
      <asp:UpdatePanel ID="UpdatePanel4" runat="server"> 
       <ContentTemplate> 
        <asp:Button ID="btnUploadnew" Text="Upload New" runat="server" BackColor="Maroon" 
         ForeColor="White" Font-Bold="true" OnClick="btnUploadnew_Click" Height="30px" 
         Width="198px" /> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
     </td> 
    </tr> 
    <tr> 
     <td align="center"> 
      <asp:UpdatePanel ID="UpdatePanel3" runat="server"> 
       <ContentTemplate> 
        <asp:Button ID="btnDel" Height="30px" Width="198px" OnClientClick="return confirm('Are you sure?');" 
         BackColor="Maroon" ForeColor="White" Font-Bold="true" Text="Delete Resume" runat="server" 
         OnClick="btnDel_Click"></asp:Button> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
     </td> 
    </tr> 
    <tr> 
     <td align="center"> 
      <asp:Label ID="lblmsg" runat="server" Font-Bold="True" ForeColor="Red" Visible="False" 
       Height="17px" Width="855px"></asp:Label> 
     </td> 
    </tr> 
    <tr> 
     <td align="center"> 
      <span class="txt"> 
       <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
        <ContentTemplate> 
         <%--<ajaxToolkit:AsyncFileUpload ID="fpResumenew" runat="server" Visible="false" />--%> 
         <asp:FileUpload ID="fpResumenew" runat="server" Visible="false" Width="226px" /> 
        </ContentTemplate> 
        <Triggers> 
         <asp:PostBackTrigger ControlID="btnUpload" /> 
        </Triggers> 
       </asp:UpdatePanel> 
      </span> 
     </td> 
    </tr> 
    <tr> 
     <td align="center"> 
      &nbsp; 
     </td> 
    </tr> 
    <tr> 
     <td style="vertical-align: top" align="center"> 
      <%--<asp:Button ID="btnUpload" Font-Bold="true" DisabledText="Processing..." Visible="false" 
         Text="Upload" BackColor="Maroon" ForeColor="White" runat="server" OnClick="btnUpload_Click" />--%> 
      <cc1:ClickOnceButton ID="btnUpload" Font-Bold="true" DisabledText="Processing..." 
       Visible="false" Text="Upload" BackColor="Maroon" ForeColor="White" runat="server" 
       OnClick="btnUpload_Click" DisableAfterClick="True" /> 
     </td> 
    </tr> 
</table> 

protégé btn_Click vide (expéditeur d'objet, EventArgs e)

{ 

    string strfilename = fp.FileName.ToString(); 

    if (fp.PostedFile.FileName.Trim().Length != 0) 

    { 

     binary = new byte[fp.PostedFile.ContentLength]; 

     binary = fp.FileBytes; 

     doc = fp.FileName; 

     contenttype = fp.PostedFile.ContentType; 


    } 

}

Juste un échantillon !!! Rien ne fonctionne pour moi .. Le problème est que j'utilise trois boutons de plus dans la même page. Les autres boutons initialisant le contrôle de téléchargement de fichier. Ainsi, lorsque vous cliquez sur le bouton de téléchargement, le nom du fichier est vide. Donc, j'ai utilisé une autre page pour télécharger le document Word. Maintenant, ça marche .. !! De toute façon, j'ai besoin de la solution pour ça !! Quelqu'un me donne une idée !!

+0

* Mon code est le suivant? –

+0

où est le code? –

+0

Comment avez-vous rendu mon code visible? J'ai essayé, il n'est pas venu – Nila

Répondre

4

Hai vaishu

contrôles fileUpload ne sont pas compatibles avec UpdatePanel quand ils sont utilisés pour télécharger des fichiers dans le cadre d'une publication asynchrone.

Vérifiez simplement la documentation AJAX. Le contrôle FileUpload est pas pris en charge à l'intérieur d'un UpdatePanel (http://ajax.asp.net/docs/overview/UpdatePanelOverview.aspx):

ou

utilisation asp: PostBackTrigger au lieu de AsyncPostBackTrigger

<asp:updatepanel runat="server" id="UpdatePanel1"> 
    <contenttemplate> 
     <asp:FileUpload runat="server" id="FileUpload1" /> 
     <asp:button runat="server" id="ButtonSubmit" text="Postback" /> 
    </contenttemplate> 
    <triggers> 
     <asp:postbacktrigger controlid="ButtonSubmit" /> 
    </triggers> 

</asp:updatepanel> 

ou

utilisation ajax pour le téléchargement de fichiers asynchrone:

http://www.asp.net/(S(fu2l2uzphr2u3u45q2dnez55))/ajax/AjaxControlToolkit/Samples/AsyncFileUpload/AsyncFileUpload.aspx

+0

quelle erreur vous avez? peut spécifier le type d'erreur exacte –

+0

Non .... Cela ne fonctionne pas. Le contrôle de téléchargement de fichier ne prend aucune valeur. Dono, c'est le problème !!! – Nila

+0

attendez je passe par votre code et vous le ferons savoir –

2

La raison pour laquelle le déclencheur de publication ne fonctionne pas dans votre cas est que le contrôle FileUpload est défini sur visible = false. Si vous utilisez display: none à la place, le déclencheur de publication fonctionnera.

+0

Nice indice , Dennis –

0

Cela fonctionne très bien, j'ai finalement résolu le problème ... le ButtonSubmit est rechargé par le déclencheur afin que la page obtienne l'information du contrôle.

<asp:updatepanel runat="server" id="UpdatePanel1"> 
    <contenttemplate> 
     <asp:FileUpload runat="server" id="FileUpload1" /> 
     <asp:button runat="server" id="ButtonSubmit" text="Postback" /> 
    </contenttemplate> 
    <triggers> 
     <asp:postbacktrigger controlid="ButtonSubmit" /> 
    </triggers> 

</asp:updatepanel> 
Questions connexes