none
Como validar extensão em .mp3? RRS feed

  • Pergunta

  • Olá a todos.

    Eu já pesquisei no fórum e não tinha tópico algum relacionado a essa minha dúvida.

    Tenho um problema simples, no meu projeto web:

    Como faço para validar uma extensão de arquivos em .mp3?

    Com try e catch.

    Exemplo: Se a extensão em .mp3 for válida, apenas retornará uma mensagem do tipo: "Extensão válida"

    Se a extensão em .mp3 não for válida, apenas retornará também uma mensagem: "Extensão inválida"

    No meu projeto, quando seleciono um arquivo pelo FileUpload, do tipo .mp3, e adiciono na minha listBox pra salvar,

    da um erro no navegador. No firefox: 

    Conexão reiniciada
              A conexão para o servidor foi reiniciada durante o carregamento da página.

    No internet explorer: O internet explorer não pode exibir a página da Web.

    Alguém sabe como resolver? É necessário ter algum tipo de plugin?

    Abraço!

    terça-feira, 26 de fevereiro de 2013 18:00

Todas as Respostas

  • Cara, 

    Posta o seu código que chama o FileUpload e o outro que adiciona os aquivos na listBox.


    Atenciosamente, Samuel dos Anjos

    terça-feira, 26 de fevereiro de 2013 18:41
  • Uma alternativa é fazer a verificação na hora do upload.

    Veja este artigo:

    Verificar a extensão do arquivo durante um upload

    terça-feira, 26 de fevereiro de 2013 18:43
  • Cara, 

    Posta o seu código que chama o FileUpload e o outro que adiciona os aquivos na listBox.


    Atenciosamente, Samuel dos Anjos

     protected void btnAdicionar_Click(object sender, EventArgs e) ADICIONANDO NA LISTBOX
            {

                    if (FileUpload1.HasFile)
                    {
                        IstArquivos.Items.Add(FileUpload1.PostedFile.FileName);

                    }
                    else
                    {
                        lblMsg.Text = "Selecione um arquivo para adicionar!";
                    }

    O fileUpload não tem método próprio. Ele é apenas chamado quando necessário, exemplo: fileUpload.Posted.FileName, if (fileUpload.HasFile), etc...

    terça-feira, 26 de fevereiro de 2013 18:49
  • Uma alternativa é fazer a verificação na hora do upload.

    Veja este artigo:

    Verificar a extensão do arquivo durante um upload

    Eu já fiz isso, dessa maneira que você me passou.

    Mas quando chega na hora de verificar se a extensão está em .mp3, a página da web da erro. Os erros que eu citei lá em cima.

    terça-feira, 26 de fevereiro de 2013 18:50
  • Isso deve ser pq o arquivo tem mais de 4MB. Se o valor padrão não foi modificado, 4MB, vai dar este erro. Para aumentar o limite basta adicionar ou mudar a linha abaixo no web.config.

    <system.web>
        <httpRuntime maxRequestLength="10240"/>
    </system.web>

    O valor é definido em KB e o padrão é de 4096, ou seja, 4MB. No exemplo acima foi definido em 10MB .

    terça-feira, 26 de fevereiro de 2013 19:11
  • Isso deve ser pq o arquivo tem mais de 4MB. Se o valor padrão não foi modificado, 4MB, vai dar este erro. Para aumentar o limite basta adicionar ou mudar a linha abaixo no web.config.

    <system.web>
        <httpRuntime maxRequestLength="10240"/>
    </system.web>

    O valor é definido em KB e o padrão é de 4096, ou seja, 4MB. No exemplo acima foi definido em 10MB .

    Meu system.web está assim e não tem o atributo maxRequestLength

    <system.web>
        <compilation debug="true" targetFramework="4.0" />

        <authentication mode="Forms">
          <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
        </authentication>

        <membership>
          <providers>
            <clear/>
            <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
                 enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
                 maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
                 applicationName="/" />
          </providers>
        </membership>

        <profile>
          <providers>
            <clear/>
            <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
          </providers>
        </profile>

        <roleManager enabled="false">
          <providers>
            <clear/>
            <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
            <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
          </providers>
        </roleManager>

      </system.web>

    terça-feira, 26 de fevereiro de 2013 19:25
  • Eu adicionei o atributo, coloquei o tamanho grande pra suportar o arquivo em .mp3

    Mas o erro continua.

    Mais alguém que possa me ajudar?

    Abraço!

    terça-feira, 26 de fevereiro de 2013 19:28
  • Sua linha atualmente está assim:
     IstArquivos.Items.Add(FileUpload1.PostedFile.FileName);

    Não deveria esta assim:
     IstArquivos.Items.Add(FileUpload1.FileName);


    terça-feira, 26 de fevereiro de 2013 19:52
  • Veja se não te ajuda:

    http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx

    E para validar a extensão, você pode fazer assim:

            private bool ValidarExtensao(string strCaminhoArquivo, string strExtensao)
            {
                return Path.GetExtension(strCaminhoArquivo).ToLower().Equals(strExtensao.ToLower());
            }

     Chamada seria:

    ValidarExtensao(@"C:\teste.mp3", ".mp3");

    quarta-feira, 27 de fevereiro de 2013 14:00
  • Vinícius faço assim para validar extensões de arquivos

    if (myfile1.PostedFile.ContentType != "application/octet-stream" && myfile1.PostedFile.ContentType != "application/x-zip-compressed")
                        {
                            ClientScript.RegisterClientScriptBlock(this.GetType(), "focus", "<script language=javascript>alert('Arquivo selecionado inválido')</script>");
                            return;
                        }
                        if (tamanho > 2000000)
                        {
                            ClientScript.RegisterClientScriptBlock(this.GetType(), "focus", "<script language=javascript>alert('Arquivo com tamanho (KB) além do permitido')</script>");
                            return;
                        }
                        if (extensao != ".zip" && extensao != ".rar")
                        {
                            ClientScript.RegisterClientScriptBlock(this.GetType(), "focus", "<script language=javascript>alert('Escolha um arquivo no formato RAR ou ZIP')</script>");
                            return;
                        }


    Junior

    quarta-feira, 27 de fevereiro de 2013 14:13
  • Posta o stack completo

    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    segunda-feira, 4 de março de 2013 12:12
    Moderador
  • Sua linha atualmente está assim:
     IstArquivos.Items.Add(FileUpload1.PostedFile.FileName);

    Não deveria esta assim:
     IstArquivos.Items.Add(FileUpload1.FileName);


    Não brother, eu já testei e não tem diferença realmente. Ambos fazem a mesma coisa. Isto é, pegam o nome e adicionam na ListBox.
    • Editado Vinícius Gomes sexta-feira, 8 de março de 2013 17:42 resposta incompleta
    sexta-feira, 8 de março de 2013 17:40