Caro(a) Leitor(a), estava passando uma dificuldade ao tentar fazer upload de um arquivo e o valor sempre vinha null. Não posso dizer que este documento é um artigo, é mais como uma dica para quem está passando o mesmo problema que eu.

Tag: Update, Type=file, C#

O problema foi identificado apenas pelo fato de ter o <updatePanel> indicado na página masterPage. Listagem 1.

[CODE]
        <div id="conteudo">
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                <asp:ContentPlaceHolder ID="MainContent" runat="server">
                        
                    </asp:ContentPlaceHolder>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
[/CODE]
Listagem 1: UpdatePanel e ContentTemplate

Tive que tirar esse updatePanel na página master e ai funcionou o update. Antes estava sempre vindo NULL. Eu fiz o update com a tag HTML do tipo file. Listagem 2.

[CODE]
<input type="file" id="txtUploadHTML" runat="server" />

[/CODE]
Listagem 2: Type=file

Note que coloquei o runat=”server”, isso torna visível o campo dentro da linguagem C#. Ao clicar no botão para submeter a página, basta verificar se o arquivo postado é diferente de NULL. Listagem 3.

[CODE]
if (txtUploadHTML.PostedFile != null)
{
string StrFileName = txtUploadHTML.PostedFile.FileName.Substring(txtUploadHTML.PostedFile.FileName.LastIndexOf("\\") + 1);

string Caminho = txtUploadHTML.PostedFile.FileName.Substring(0, txtUploadHTML.PostedFile.FileName.LastIndexOf("\\") + 1);
 
Response.Write(StrFileName);
Response.Write(Caminho);
}
[/CODE]
Listagem 3: Fazendo o upload

Eu poderia ter colocado mais coisas como, pegar o tipo de arquivo, pegar a quantidade ou salvar o arquivo. Mas pra isso tem outro artigo falando sobre isso [http://ecode10.com/artigo/133/ASP.NET+2.0+FileUpload.aspx].

O importante é que o meu problema de upload de arquivo foi foi resolvido apenas tirando o update da página master ou então criar uma outra master sem o update.

Sem tirar a tag update é necessário utilizar o podbacktrigger e o asyncpostbacktrigger no Ajax. Bom, espero ter ajudado e qualquer dúvida pode entrar em contato.