Denne her viser hvordan man kan gøre det, det skal dog siges jeg ikke har fundet ud af endnu hvordan man specificerer det filenavn folk skal gemme under.
Det er noget med en header men jeg har ikke fundet den korrekte endnu, ps. denne er hardcodet til en specifik fil.
Prøv med
www.disky.dk/servlet/Download?id=17filen er et zip arkiv, med et sjovt billede i:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class typo extends HttpServlet
{
public static final String PATH="c:\\apache\\htdocs\\web-inf\\classes\\";
private fontgrabber fg = null;
private fontinfo fi = null;
/**
* Service
* Handles GET request-response
* @param HttpServletRequest, HttpServletResponse
*/
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
res.setContentType("application/zip");
ServletOutputStream out=res.getOutputStream();
String strId=req.getParameter("id");
int id=0;
if(strId!=null && strId.length()!=0)
{
id=Integer.parseInt(strId);
}
//lav har database opslag på baggrund af id jeg har hardcodet det.
String filePath="/home/download.zip";
byte buf[]=new byte[65536];
int len=0;
FileInputStream in=new FileInputStream(filePath);
while( (len=in.read(buf))!=-1)
{
out.write(buf,0,len);
}
in.close();
out.close();
}
}