none
FileUpload - pegar nome do arquivo ao selecionar RRS feed

  • Pergunta

  • Pessoal, estou com um probleminha que parece ser simples e estou quebrando a cabeça e nao estou conseguindo resolver.

    Tenho um FileUpload e um TextBox, eu quero simplesmente que ao selecionar um arquivo no FileUpload o TextBox seja preenchido com o nome do arquivo selecionado.

    Não estou encontrando o evento do FileUpload que execute algo ao selecionar um arquivo..

     

    Alguem sabe como resolver isto?

    sexta-feira, 15 de julho de 2011 13:43

Respostas

  • Fiz em JavaScript aqui e deu certo, a pessoa seleciona qual arquivo ela quer fazer upload, sem que ela clique no botão para fazer o upload, um método em JavaScript retorna apenas o nome do arquivo e atribui a um TextBox, caso tenha sido util, marque como resposta:

    .aspx
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title>Untitled Page</title>
    
      <script language="javascript" type="text/javascript">
      function pegarCaminhoArquivo() {
        var caminhoArquivo = document.getElementById('fileUploadArquivo').value;
        document.getElementById('txtNomeArquivo').value = pegarNomeArquivo(caminhoArquivo);
      }
      
      function pegarNomeArquivo(caminhoArquivo) {
        var objRE = new RegExp(/([^\/\\]+)$/);
        var nomeArquivo = objRE.exec(caminhoArquivo);
        if (nomeArquivo == null) {
          return null;
        }
        else
        {
          return nomeArquivo[0];
        }
      }
      </script>
    
    </head>
    <body>
      <form id="form1" runat="server">
      <div>
        <asp:FileUpload ID="fileUploadArquivo" runat="server" OnBlur='pegarCaminhoArquivo();' />
        <br />
        <asp:TextBox ID="txtNomeArquivo" runat="server" Enabled="false"></asp:TextBox>
      </div>
      </form>
    </body>
    </html>
    
    

     
    Vitor Mendes | Seu feedback é muito importante para todos!
    sexta-feira, 15 de julho de 2011 18:28

Todas as Respostas

  • Você pode tentar usar a propriedade FileName, e depois atribuir ao textbox, segue link abaixo sobre o mesmo:

    http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filename.aspx 

    Exemplo:
    // Get the name of the file to upload.
    txtNomeArquivo.Text = FileUpload1.FileName;

     
    Vitor Mendes | Seu feedback é muito importante para todos!
    sexta-feira, 15 de julho de 2011 14:18
  • Entao Vitor... é isto que estou tentando... mas queria que o nome do arquivo fosse para o TB antes de enviar o arquivo pro servidor... algo tipo um "onClick" no textbox que pegue o valor que esta no fileupload entende?

     

    mas pelo que eu estou procurando, nao tem um evento que execute ao selecionar o arquivo... eu teria que colocar um botao pra dai dar o postback...

    sexta-feira, 15 de julho de 2011 14:38
  • A unica forma que eu vejo seria tentando recuperar o nome do arquivo via JavaScript.

     

    Veja essa Thread:

    http://forums.asp.net/t/1218942.aspx

     

    Robson Alves.


    Site: RobsonAlves.net/Portal
    Twitter: @robsonalvesti
    LinkedIn: br.linkedin.com/in/robsonalves
    Skype: RobsonAlves.Net
    Quem Compartilha, Ensina e Aprende.
    sexta-feira, 15 de julho de 2011 14:55
  • Fiz em JavaScript aqui e deu certo, a pessoa seleciona qual arquivo ela quer fazer upload, sem que ela clique no botão para fazer o upload, um método em JavaScript retorna apenas o nome do arquivo e atribui a um TextBox, caso tenha sido util, marque como resposta:

    .aspx
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title>Untitled Page</title>
    
      <script language="javascript" type="text/javascript">
      function pegarCaminhoArquivo() {
        var caminhoArquivo = document.getElementById('fileUploadArquivo').value;
        document.getElementById('txtNomeArquivo').value = pegarNomeArquivo(caminhoArquivo);
      }
      
      function pegarNomeArquivo(caminhoArquivo) {
        var objRE = new RegExp(/([^\/\\]+)$/);
        var nomeArquivo = objRE.exec(caminhoArquivo);
        if (nomeArquivo == null) {
          return null;
        }
        else
        {
          return nomeArquivo[0];
        }
      }
      </script>
    
    </head>
    <body>
      <form id="form1" runat="server">
      <div>
        <asp:FileUpload ID="fileUploadArquivo" runat="server" OnBlur='pegarCaminhoArquivo();' />
        <br />
        <asp:TextBox ID="txtNomeArquivo" runat="server" Enabled="false"></asp:TextBox>
      </div>
      </form>
    </body>
    </html>
    
    

     
    Vitor Mendes | Seu feedback é muito importante para todos!
    sexta-feira, 15 de julho de 2011 18:28