Duvida em Java Web

2 respostas
A

BOm pessoal, o seguinte, tenho uma aplicação em JAva que em uma função ele oferece o download de um arquivo .mp3 pro usuário!
O Problema é que eu fiz a classe mas só consigo baixar o arquivo pelo firefix! No internet explorer ele abre o media player e executa o arquivo!
ALguem pode me orientar a resolver esse embrolio!
esse é o codigo da classe q baixa o arquivo:

/*

  • BaixarMp3.java
  • Created on 19 de Setembro de 2007, 11:12
    */

package pctel;

import java.io.;
import java.net.
;

import javax.servlet.;
import javax.servlet.http.
;

/**
*

  • author ADRIANO

  • 19 de Setembro de 2007 - 11:13
    */
    public class BaixarMp3 extends HttpServlet
    {

    /** Processes requests for both HTTP GET and POST methods.

    • @param request servlet request

    • @param response servlet response
      
      */
      
      protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
      
      {
      
      response.setContentType(text/html);
      
      //Garantir que o Usuário foi Autenticado
      
      HttpSession session = request.getSession();
      
      Object done = session.getAttribute(logon.isDone);
      
      if(done==null){
      
      response.sendRedirect(login.jsp);
      
      return;
      
      }
      
      Object uservr =  session.getAttribute(uservr);
      
      if(done.equals(admin)){
      
      uservr = true;
      
      }
      
      if(uservr.equals(false)){
      
      response.sendRedirect(index.jsp);
      
      return;
      
      }
      

      //Obter ID do Arquivo
      int id;

      try
      
      {
      
      id = Integer.parseInt(request.getParameter(“id”));
      
      }
      
      catch (NumberFormatException e)
      
      {
      
      id = 0;
      
      }
      

      PesquisaDAO dao = new PesquisaDAO();
      PesquisaVO resultadoid = dao.pesquisarid(id);

      if (resultadoid != null)
      
      {
      
      PrintWriter out = response.getWriter();
      
      String dir = resultadoid.getArquivo();
      
      try
      
      {
      
      int c = 0;
      
      FileInputStream f = new FileInputStream (dir);
      
      while ((c = f.read ()) != (-1))
           {
               out.write (c);
           }
           
           f.close ();
      }
      catch (IOException ioe)
      {
          System.out.println("ioe.getMessage()");
          ioe.printStackTrace();               
      }
      finally
      {
          out.close ();
      }
      
      }
      
      else
      
      {
      

      }
      }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    
    {
    
    this.processRequest (request,response);
    
    }
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    
    {
    
    processRequest(request, response);
    
    }
    
    /** Returns a short description of the servlet.
    
    */
    
    public String getServletInfo()
    
    {
    
    return Envia uma MP3 para o navegador.;
    
    }
    
    }
    

Desde já agradeço!

2 Respostas

SanjuanRJ

tenta colocar

response.setContentType(“audio/mpeg”);

response.addHeader(“Content-Disposition”, “attachment; filename=”

+ fileName);

vc ta colocando text/html como tipo de resposta…
dá uma olhada nessa página, esperoque ajude.
http://www.java2s.com/Code/Java/Servlets/Sendmp3.htm

A

Caro SanjuanRJ,

Eu ainda caminho em Java, mas queria saber se onde está filename eu mudo pra alguma referencia ao meu arquivo,
pq eu coloquei as linhas como vc propos e abriu a caixa d download porém veio como arquivo nulo!
Não compreendi muito bem onde devo mudar!
Fiacria grato por mais um esclarecimento!
Desde já agradeço

Criado 1 de outubro de 2007
Ultima resposta 1 de out. de 2007
Respostas 2
Participantes 2