import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.yinhoo.global.GlobalSettings;
import java.io.File;
public class RardownLoad extends HttpServlet {
/**
* Constructor of the object.
*/
public RardownLoad() {
super();
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to
* post. this method is usered to download the compressed file that is
* demanded by customers
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("GBK");
String filename = request.getParameter("downfile") + ".rar";
System.out.println("下载文件名为:"+filename);
response.setHeader("refresh", "attachment; filename="+filename);
String exportpath = request.getRealPath(GlobalSettings
.getProperty("data_export_path"))
+ File.separator + filename;
try {
File file = new File(exportpath);
byte[] bt = new byte[1024];
int len = 0;
response.reset();
FileInputStream fin = new FileInputStream(exportpath);
while ((len = fin.read(bt, 0, 1024)) != -1) {
response.getOutputStream().write(bt, 0, len);
}
fin.close();
fin = null;
file.delete();
} catch (Exception e) {
e.getMessage();
}
}
}