Ajuda java web!

3 respostas
A

Bom pessoal, estou com uma duvida, fiz uma classe q pega um arquivo no BD em .mp3 e ofereçe pra download! essa era a idéia, porém, qd eu abro no Explorer ele não baixa , ele executa e no Firefox ele abre pra download e baixa! Por favor se alguém souber me sanar essa duvida!
Eis ai a classe:

/*

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

package pctel;

import <a href="http://java.io">java.io</a>.<em>;

import <a href="http://java.net">java.net</a>.</em>;

import java.util.Properties;
import javax.servlet.<em>;

import javax.servlet.http.</em>;

import javax.sound.sampled.AudioFormat;

/**
*

  • 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(audio/mpeg);
      

      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;
      
      }
      
      AudioFormat sound1 = null;
      
      String dir = null;
      
      StringBuffer url = null;
      
      String novaurl = “”;
      
      String pasta = “”;
      
      String ouvida = request.getParameter(ouvida);
      
      char s;
      
      int  cont = 0;
      
      int id;
      
      try {
      
      id = Integer.parseInt(request.getParameter(id));
      
      } catch (NumberFormatException e) {
      
      id = 0;
      
      }
      
      if(ouvida==null){
      
      ouvida = false;
      
      }
      
      PesquisaDAO dao = new PesquisaDAO();
      
      PesquisaVO resultadoid = dao.pesquisarid(id);
      
    if (resultadoid != null) {
    
    if(ouvida.equals(false)){
    
    dao.ouvida(id);
    
    }
    
    response.setContentType(audio/mpeg);
    
    PrintWriter out = response.getWriter();
    
    dir = resultadoid.getArquivo();
    
    dir = dir.replace(’\’,’/);
    
    url = request.getRequestURL();
       
        for (int i = 0; i < url.length(); i++) {  
         s = url.charAt(i);
        if(s == '/'){
            cont++;
        }
        if(cont < 3){
            novaurl += String.valueOf(url.charAt(i));
        }
        }
        
       File file = new File(getServletContext().getRealPath("properties\\conf.properties"));
       Properties props = new Properties();
       
       FileInputStream fis = null;
       try {
         
         fis = new FileInputStream(file);
         //lê os dados que estão no arquivo
         props.load(fis);
         fis.close();
       } catch (IOException ex) {
         System.out.println(ex.getMessage());
         ex.printStackTrace();
       }
       
       pasta = props.getProperty("pasta");
       novaurl = novaurl+"/"+ pasta +"/"+dir; 
       
       response.sendRedirect(novaurl);
    
    }else {
    
    response.setContentType(audio/mpeg);
    
    PrintWriter out = response.getWriter();
    
    out.println("");
    
    out.println(Pesquisa);
    
    out.println("<body bgcolor="#ffffff">");
    
    out.println(

    Erro " + id + “

    ”);
    out.println(”");
    out.println("");
    out.close();

    }

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
    this.processRequest (request,response);
    }
    /** Handles the HTTP POST method.

    • @param request servlet request
    • @param response servlet 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

3 Respostas

italo.vendrameto

Duplicando post,

response.setContentType("audio/mpeg"); response.addHeader("Content-Disposition", "attachment; filename=down.mp3");

ou como o cologa sugeriu no outro post

response.setContentType("audio/mpeg"); response.addHeader("Content-Disposition", "attachment; filename=" + fileName);

no lugar de fileName use alguma referencia que vendo do banco como o nome da música ou qualquer coisa que seja util

A

Amigo, coloquei como sugeriu, porém o arquivo vem null!
Só não tentei colocar um nome direto do bd pq são muitos arquivos!
Coloquei do primeiro e todos sairam com o mesmo nome e vazios!
Realmente não consigo entender!

italo.vendrameto

tira o filename para testar para ver no que dá

response.setContentType("audio/mpeg"); response.addHeader("Content-Disposition", "attachment;");

Criado 4 de outubro de 2007
Ultima resposta 4 de out. de 2007
Respostas 3
Participantes 2