.NET "Request.Files" legt extra invoer vast

Ik heb een dynamisch multi-uploadformulier gemaakt met bestandstype-invoer. Wanneer u een bestand selecteert, verschijnt er een nieuwe invoer. Bij het verzenden van het formulier alle ingangen vastgelegd door "Request.Files" op code achter.

Er is geen probleem wanneer ik dat bestand in een ASPX-bestand maak, maar wanneer ik de pagina Web User Control (.ascx) "Request.Files" gebruik, voeg dan nog 1 verzoek toe (voor de invoer van het lege bestand).

Waarom ascx de balnk-invoer tellen?

Ik deel de codes hieronder:

MultiImage.ascx

  • <input type="file" class="imageToUpload" runat="server" />
<script type="text/javascript"> $('.imageToUpload').live('change', function() { $(this).parent().append('<div class="imageInfoContainer">Yüklenen görsel: ' + $(this).val() + ' <div class="deleteImage">Sil<div><div>'); if ($('input:file').length < <%= MaxImageNumber %>) { $(this).parent().parent().append('
  • <input type="file" class="imageToUpload" runat="server" />
  • '); } }); $('.deleteImage').live('click', function() { $(this).parent().parent().remove(); if ($('input:file').length < 1) { $('#imagesToUpload').html('
  • <input type="file" class="imageToUpload" runat="server" />
  • '); } }); </script>

    MultiImage.ascx.cs

    var imageCollection = Request.Files; //Counts all file inputs included the blank one
    
    0

    1 antwoord

        

    Waarom ascx de balnk-invoer tellen?

      

    U bedoelt waarom telt het HttpRequest -object die invoer? Omdat het aanwezig is in het verzoek. U kunt echter eenvoudig controleren of het leeg is of niet door te kijken naar de eigenschap HttpPostedFile.ContentLength van elk element in de verzameling Bestanden.

    0
    toegevoegd
    @pilavust Ik kan me niet voorstellen dat er een verschil zou zijn tussen de inhoud van de collectie Files wanneer deze wordt aangeroepen vanuit aspx of ascx-code. De instantie van het verzoekobject zou dezelfde binnenpagina en dezelfde controle zijn, omdat het eenvoudigweg HttpContext.Current.Request is. Heeft u een code die de bestanden -collectie illustreert die alleen niet-lege ingangen bevat?
    toegevoegd de auteur Ilia G, de bron
    Precies! Ik deed hetzelfde om te voorkomen. Maar ik ben benieuwd waarom HttpRequest die invoer niet meet op een webformulierpagina (.aspx). Wat is het verschil?
    toegevoegd de auteur pilavust, de bron
    je hebt gelijk. Ik heb een punt gemist. Ik gebruikte HttpRequest bij aspx met paginabesturing. Sorry dat ik stoor.
    toegevoegd de auteur pilavust, de bron