2011-12-06 10 views
0

ファイルタイプ入力を使用して動的に複数のアップロードフォームを作成しました。ファイルを選択すると、新しいファイル入力が表示されます。フォームを送信するときは、「Request.Files」によってキャプチャされたすべての入力がコードの背後にあります。.NET「Request.Files」は余分な入力を取り込みます

.aspxファイルでこれらのファイルを生成するときに問題はありませんが、Webユーザーコントロール(.ascx)ページ "Request.Files"を使用すると空白のファイル入力に対して1つの追加要求が追加されます。

なぜ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

ASCXはbalnk入力を数えるのはなぜ?

あなたはなぜHttpRequestオブジェクトがそのカウント入力はどういう意味?これはリクエストに含まれているためです。ただし、ファイルコレクション内の各要素のHttpPostedFile.ContentLengthプロパティを調べることで、空であるかどうかを簡単に確認できます。

+0

正確に!私も同じことをやっていました。しかし、私はなぜHttpRequestがWebフォームページ(.aspx)でその入力を数えないのか不思議です。違いはなんですか? – pilavust

+0

@pilavu​​st aspxまたはascxコードから呼び出されたときに 'Files'コレクションの内容に違いがあるとは思いません。要求オブジェクトのインスタンスは単に 'HttpContext.Current.Request'なので、内部のページとコントロールは同じになります。空でない入力だけを含む 'Files'コレクションを示すいくつかのコードがありますか? –

+0

あなたは正しいです。私はポイントを逃した。私はページコントロールでaspxで 'HttpRequest'を使いました。気にして申し訳ありません。 – pilavust

関連する問題