2011-12-06 2 views
0

파일 유형 입력을 사용하여 동적으로 다중 업로드 양식을 만들었습니다. 파일을 선택하면 새로운 파일 입력이 나타납니다. 양식을 제출할 때 코드 뒤에 "Request.Files"에 의해 포착 된 모든 입력을 제출하십시오..NET "Request.Files"추가 입력 캡처

.aspx 파일에서 해당 파일을 생성 할 때 문제가되지 않지만 웹 사용자 정의 컨트롤 (.ascx) 페이지 "Request.Files"를 사용하면 빈 파일 입력에 대해 1 개의 요청을 더 추가합니다.

왜 ascx가 balnk 입력을 계산합니까? ASCX가 balnk 입력을 계산하는 이유

MultiImage.ascx

<ul id="imagesToUpload"> 
    <li><input type="file" class="imageToUpload" runat="server" /></li> 
</ul> 


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

    $('.deleteImage').live('click', function() { 
     $(this).parent().parent().remove(); 
     if ($('input:file').length < 1) { 
      $('#imagesToUpload').html('<li><input type="file" class="imageToUpload" runat="server" /></li>'); 
     } 
    }); 
</script> 

MultiImage.ascx.cs

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

답변

0

:

나는 아래의 코드를 공유? HttpRequest 객체가 해당 입력을 계산 않는 이유

당신은 의미합니까? 그것은 요청에 존재하기 때문입니다. 그러나 Files 콜렉션 내의 각 요소에 대한 HttpPostedFile.ContentLength 특성을 보면 파일이 비 었는지 여부를 쉽게 확인할 수 있습니다.

+0

바로! 나는 예방하기 위해 같은 일을했다. 그러나 HttpRequest가 웹 양식 페이지 (.aspx)에서 그 입력을 계산하지 않는 이유에 대해 궁금합니다. 그 차이점은 무엇입니까? – pilavust

+0

@pilavust aspx 또는 ascx 코드에서 호출 할 때'Files' 컬렉션의 내용간에 차이가있을 것이라고 상상할 수 없습니다. 요청 객체 인스턴스는 단순히 'HttpContext.Current.Request'이기 때문에 내부 페이지와 컨트롤이 동일합니다. 비공개 입력 만 포함하는'Files' 콜렉션을 보여주는 코드가 있습니까? –

+0

당신이 옳습니다. 나는 한 점을 놓쳤다. 나는 페이지 컨트롤과 함께 aspx에서'HttpRequest'를 사용했다. 방해해서 죄송합니다. – pilavust