O Controle FileUpload é muito util para a transferência de arquivos do lado do cliente para o lado
                do servidor, ou seja, para envio de documentos ao site.
            
            
                É um recurso muito útil pois poupa muito tempo...é o mesmo que colocar uma carta no correio ou enviar
                um e-mail. Nem compara tempo, eficiência e custo.
            
            
                Contudo representa um risco grande de segurança ao servidor. O usuário pode nem saber e enviar um
                arquivo infectado por vírus para o servidor. Mesmo com todas as restrições de tipo de arquivo nada
                garante que não venha um arquivo com vírus. A culpa é da própria Microsoft que permitiu anexar arquivos
                ( desde o DOS 1.0 ) de tipos diferentes e, sendo assim, posso anexar um arquivo .exe (vírus) num arquivo
                texto e, analisando o arquivo, parece um arquivo texto simples.
            
            
                O controle File-Upload precisa de 2 operações básicas para enviar o arquivo por este controle, o primeiro
                é a escolha do arquivo e a segunda é clicar no botão de envio de arquivo.
            
            
                Para realizar a primeira opção ele tem um botão para escolha do arquivo. 
            
            
                Logo à direita do botão de escolha do arquivo temos um campo texto para o nome do arquivo. 
                Se nenhum arquivo ainda foi selecionado, neste campo, será exibida a mensagem 'Nenhum arquivo 
                escolhido'. Se um arquivo for selecionado o seu nome será exibido neste texto.
            
            
                Um segundo botão fará o processo em si de envio do arquivo.
            
            
                Colocarei os campos e botões com fundo diferente, uma boa padding e borda para denotar cada elemento.
                Em azul claro é o controle FileUpload em Si. Em Verde claro é o botão enviar. 
                Em pink é a mensagem se o arquivo foi ou não enviado. 
            
            
                Exemplo de uso :
                
                    
                
                       
                
                    
                
                       
                
                    
                
            
            
                Código:
                <p>
                            Exemplo de uso :
                            <span style="background-color:lightblue;padding:20px;border:1px solid blue">
                                <asp:FileUpload ID="FileUpload1" runat="server" />
                            </span>
                                   
                            <span style="background-color:lightgreen;padding:20px;border:1px solid blue">
                                <asp:Button ID="btnenviar" runat="server" onclick="btnenviar_Click"  Text="Enviar" style="width:80px" CssClass="FundoAzulClaro" />
                            </span>
                                   
                            <span style="background-color:pink;padding:20px;border:1px solid blue">
                                <asp:Label ID="lblmsg" runat="server" CssClass="FundoPink" />
                            </span>
                        </p>
                
                Protected Sub btnenviar_Click(sender As Object, e As EventArgs)
                        If FileUpload1.HasFile Then
                            Dim nomeArquivo As String = FileUpload1.PostedFile.FileName
                            Dim tamanhoArquivo As Long = FileUpload1.PostedFile.ContentLength
                            'FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Imagens/" + nomeArquivo))
                            lblmsg.Text = "Arquivo enviado com sucesso." & vbCrLf & "Tamanho do Arquivo = " & tamanhoArquivo.ToString() & "bytes"
                        Else
                            lblmsg.Text = "Por Favor, selecione um arquivo a enviar."
                        End If
                    End Sub        
            
            
                Importante1 : Coloquei um comentário na linha que executa o upload do arquivo:
                'FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Imagens/" + nomeArquivo))
                O arquivo iria ser enviado para a subpasta Imagens do root do site. 
                Você deverá ajustar esta pasta para o seu site provavelmente.
            
            
                Importante2 : Por motivos de segurança não é permitido enviar outros conteúdos junto com o arquivo.
                Explicando melhor, poderíamos no click do botão fazer o file-upload e dar um submit no form para enviar
                os dados dos controles ao servidor. Isto não é permitido...ou vai o arquivo ou vai os dados dos
                controles para o servidor.
            
            
                No form que está enviando o arquivo é definido um parâmetro especial de envio de arquivos :
                enctype='multipart/form-data'
                Isto faz com que o form só envie o arquivo, nada de dados de controle.
            
            
                Importante3 : No asp net não podemos ter 2 forms e por esse motivo não será possível fazer um form para
                file upload e outro para enviar dados dos controles ao servidor. Isto foi feito propositalmente por
                motivos de segurança.