2013-03-31 88 views
-5

我正在製作一個網站來管理音樂,但我不知道如何從我的servlet下載mp3。用Java servlet從Tomcat服務器下載mp3文件

這裏是我的代碼:

filename=new File(imagepath).getName(); 
    FileOutputStream fil=new FileOutputStream(pathfolder+"/"+filename); 

    URL url=new URL("http://192.168.1.4:8080/Demo/upload/"+filename); 

    HttpURLConnection urlconnection=null; 
    urlconnection=(HttpURLConnection)url.openConnection(); 

    urlconnection.setRequestMethod("GET"); 
    urlconnection.setDoOutput(true); 
    urlconnection.connect(); 


    int total_size=urlconnection.getContentLength(); 
    Log.i("totall sizeeeeeee",""+total_size); 
    InputStream inpstream = urlconnection.getInputStream(); 
    byte[] buffer=new byte[total_size]; 
    int buffleng=0,download_size=0; 
    while((buffleng=inpstream.read(buffer))>0) 
    { 

    fil.write(buffer,0,buffleng); 

    } 

    } 
    catch(Exception ex){ 

     ex.printStackTrace(); 

    } 
+0

姆......像下載音樂的代理? –

回答

1
ServletOutputStream stream = null; 
BufferedInputStream buf = null; 
try { 
    stream = response.getOutputStream(); 
    File mp3 = new File("/myCollectionOfSongs" + "/" + fileName); 

    //set response headers 
    response.setContentType("audio/mpeg"); 

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

    response.setContentLength((int) mp3.length()); 

    FileInputStream input = new FileInputStream(mp3); 
    buf = new BufferedInputStream(input); 
    int readBytes = 0; 
    //read from the file; write to the ServletOutputStream 
    while ((readBytes = buf.read()) != -1) 
    stream.write(readBytes); 
} catch (IOException ioe) { 
    throw new ServletException(ioe.getMessage()); 
} finally { 
    if (stream != null) 
    stream.close(); 
    if (buf != null) 
    buf.close(); 
}