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 pelo site www.mauriciojunior.org.
This article was originally written by:

Maurício Júnior
MCP, MCAD, MVP Microsoft
www.mauriciojunior.org
blog.mauriciojunior.org                
www.ecode10.com