2011-03-30 15 views
8

El nombre de archivo y la extensión están vacíos. Por favor ayuda.El control de carga de archivos no funciona

ASPX archivo de código:

<tr> 
    <td colspan="3" style="height:0px"> 
    <div id="trFile" runat="server" class="inlineGridAddAddress"> 
     <table cellpadding="0" cellspacing="0"> 
     <tr> 
      <td> 
      <div class="formFieldName"> 
       <asp:RequiredFieldValidator ID="reqFile" runat="server" 
        ControlToValidate="fileUpload" ErrorMessage="Please select File" 
        ValidationGroup="Save" CssClass="Validations" ></asp:RequiredFieldValidator> 
      </div> 
      </td> 
     </tr> 
     <tr> 
      <td> 
      <asp:Label ID="lblFile" runat="server">File:</asp:Label> 
      </td> 
      <td> 
      <div> 
       <asp:FileUpload ID="fileUpload" runat="server" /> 
      </div> 
      </td> 
      <td class="tdformFieldValueLogin" style="width:350px;padding-left:50px"> 
      <asp:ImageButton ID="btnFileUploadSave" runat="server" ValidationGroup="Save" 
       ImageUrl="~/App_Themes/Default/images/update.png" ToolTip="Save" 
       Height="18px" onclick="btnFileUploadSave_Click"/> 
      <asp:ImageButton ID="btnFileUploadCancel" ImageUrl="~/App_Themes/Default/images/cancel.png" 
       runat="server" ToolTip="Cancel" Height="18px" /> 
      </td> 
     </tr> 

     <tr> 
      <td> 
      <div class="formSmallTextAreaName"> 
       <asp:Label ID="lblDescription" runat="server">Description:</asp:Label> 
      </div> 
      </td> 
      <td> 
      <div class="formSmallTextAreaValue"> 
       <asp:RegularExpressionValidator ID="revNote" 
        runat="server" ControlToValidate="txtDescription" 
        ValidationExpression="^[\s\S]{0,4096}$" 
        Text="Maximum 4096 characters are allowed." 
        CssClass="Validations" Display="Dynamic"> 
       </asp:RegularExpressionValidator> 
       <asp:TextBox ID="txtDescription" 
        runat="server" CssClass="textEntry1" 
        TextMode="MultiLine" MaxLength="4096" Width="218px"> 
       </asp:TextBox> 
      </div> 
      </td> 
     </tr> 
     </table> 
    </div> 
    </td> 
</tr> 

CS archivo de código:

protected void btnFileUploadSave_Click(object sender, ImageClickEventArgs e) 
    { 
     string path = Server.MapPath(".") + "\\Files\\" + this.fileUpload.FileName; 
     string fileExtension = System.IO.Path.GetExtension(this.fileUpload.FileName).ToLower(); 
     if (fileExtension == ".txt" || fileExtension == ".doc" || fileExtension == ".docx" || fileExtension == ".zip" || fileExtension == ".rar" || fileExtension == ".cs" || fileExtension == ".ppt" || fileExtension == ".pdf" || fileExtension == ".html" || fileExtension == ".jpg" || fileExtension == ".gif" || fileExtension == ".bmp" || fileExtension == ".png" || fileExtension == ".tif" || fileExtension == ".rm" || fileExtension == ".mp3" || fileExtension == ".xls") 
     { 
      this.fileUpload.PostedFile.SaveAs(path); 
     } 
    } 
+3

¿Usted está haciendo una devolución de datos completa? El control FileUpload no funcionará dentro de una devolución de datos parcial (es decir, desde dentro de un UpdatePanel, entonces debe activar una devolución de datos completa). – Dies

Respuesta

8

Si usted está poniendo su UploadControl en un UpdatePanel (Ajax cosas), no va a funcionar por defecto. Utilice panel de actualización, carga de archivos de control y utilizar un control PostBackTrigger para forzar un postback sólo para la carga de archivos de control

revisa el siguiente enlace

File Upload in UpdatePanel, ASP.NET AJAX

+0

Gracias muchottttttttttttttttttttt – asma

Cuestiones relacionadas