¡¡¡¡£±¡£×îÖ±½Ó×î¼òµ¥µÄ£¬·½Ê½ÊÇ°ÑÎļþµØÖ·Ö±½Ó·Åµ½htmlÒ³ÃæµÄÒ»¸öÁ´½ÓÖС£ÕâÑù×öµÄȱµãÊÇ°ÑÎļþÔÚ·þÎñÆ÷ÉϵÄ·¾¶±©Â¶ÁË£¬²¢ÇÒ»¹ÎÞ·¨¶ÔÎļþÏÂÔؽøÐÐÆäËüµÄ¿ØÖÆ£¨ÈçȨÏÞ£©¡£Õâ¸ö¾Í²»Ð´Ê¾ÀýÁË¡£
¡¡¡¡£²¡£ÔÚ·þÎñÆ÷¶Ë°ÑÎļþת»»³ÉÊä³öÁ÷£¬Ð´Èëµ½response£¬ÒÔresponse°ÑÎļþ´øµ½ä¯ÀÀÆ÷£¬ÓÉä¯ÀÀÆ÷À´ÌáʾÓû§ÊÇ·ñÔ¸Òâ±£´æÎļþµ½±¾µØ¡££¨Ê¾ÀýÈçÏ£©
¡¡¡¡<%
¡¡¡¡ response.setContentType(fileminitype);
¡¡¡¡ response.setHeader("Location",filename);
¡¡¡¡ response.setHeader("Cache-Control", "max-age=" + cacheTime);
¡¡¡¡ response.setHeader("Content-Disposition", "attachment; filename=" + filename); //filenameÓ¦¸ÃÊDZàÂëºóµÄ(utf-8)
¡¡¡¡ response.setContentLength(filelength);
¡¡¡¡ OutputStream outputStream = response.getOutputStream();
¡¡¡¡ InputStream inputStream = new FileInputStream(filepath);
¡¡¡¡ byte[] buffer = new byte[1024];
¡¡¡¡ int i = -1;
¡¡¡¡ while ((i = inputStream.read(buffer)) != -1) {
¡¡¡¡ outputStream.write(buffer, 0, i);
¡¡¡¡ }
¡¡¡¡ outputStream.flush();
¡¡¡¡ outputStream.close();
¡¡¡¡ inputStream.close();
¡¡¡¡ outputStream = null;
¡¡¡¡%>
¡¡¡¡£³¡£¼ÈÈ»ÊÇJSPµÄ»°£¬»¹ÓÐÒ»ÖÖ·½Ê½¾ÍÊÇÓÃAppletÀ´ÊµÏÖÎļþµÄÏÂÔØ¡£²»¹ý¿Í»§Ê×ÏȵÃÐÅÈÎÄãµÄÕâ¸öAppletС³ÌÐò£¬ÓÉÕâ¸ö³ÌÐòÀ´½ÓÊÜÓÉservlet·¢ËÍÀ´µÄÊý¾ÝÁ÷£¬²¢Ð´Èëµ½±¾µØ¡£
¡¡¡¡servlet¶ËʾÀý
¡¡¡¡ public void service(HttpServletRequest req, HttpServletResponse res)
¡¡¡¡ throws ServletException, IOException {
¡¡¡¡ res.setContentType(" text/plain ");
¡¡¡¡ OutputStream outputStream = null;
¡¡¡¡ try {
¡¡¡¡ outputStream = res.getOutputStream();
¡¡¡¡ popFile(srcFile, outputStream)) ;//°ÑÎļþ·¾¶ÎªsrcFileµÄÎļþдÈëµ½outputStreamÖС£
¡¡¡¡ } catch (IOException e) {
¡¡¡¡ e.printStackTrace();
¡¡¡¡ }
¡¡¡¡ }
¡¡¡¡JApplet¶ËʾÀý
¡¡¡¡ URLConnection con;
¡¡¡¡ try {
¡¡¡¡ con = url.openConnection();//urlÊDZ»µ÷ÓõÄSERVLETµÄÍøÖ· Èçhttp://localhost:8080/sendDateSevlet.do
¡¡¡¡ con.setUseCaches(false);
¡¡¡¡ con.setDoInput(true);
¡¡¡¡ con.setDoOutput(true);
¡¡¡¡ con.setRequestProperty("Content-Type",
¡¡¡¡ "application/octet-stream");
¡¡¡¡ InputStream in = con.getInputStream();
¡¡¡¡ ProgressMonitorInputStream pmInputStream = new ProgressMonitorInputStream(
¡¡¡¡ pane, "ÕýÔÚ´Ó·þÎñÆ÷ÏÂÔØÎļþÄÚÈÝ", in);
¡¡¡¡ ProgressMonitor pMonitor = pmInputStream
¡¡¡¡ .getProgressMonitor();
¡¡¡¡ pMonitor.setMillisToDecideToPopup(3);
¡¡¡¡ pMonitor.setMillisToPopup(3);
¡¡¡¡ String localfilepath = localstr + filename ;//localfilepath±¾µØ·¾¶,localstrÎļþÎļþ¼Ð£¬filename±¾µØÎļþÃû
¡¡¡¡ ¡¡¡¡if(saveFilsaveFilee(localfilepath,pmInputStream)){¡¡//·½·¨saveFilsaveFileeÊÇ°ÑÊäÈëÁ÷pmInputStreamдµ½ÎļþlocalfilepathÖС£
¡¡¡¡¡¡openLocalFile(localfilepath);
¡¡¡¡ }
¡¡¡¡
¡¡¡¡£´¡£Ë³±ã°ÑJAppletÉÏ´«ÎļþµÄ´úÂëÒ²ÌùÉÏÀ´.
¡¡¡¡JApplet¶ËʾÀý
¡¡¡¡URLConnection con;
¡¡¡¡ try {
¡¡¡¡ con = url.openConnection();//urlÊDZ»µ÷ÓõÄSERVLETµÄÍøÖ· Èçhttp://localhost:8080/sendDateSevlet.do
¡¡¡¡ con.setUseCaches(false);
¡¡¡¡ con.setDoInput(true);
¡¡¡¡ con.setDoOutput(true);
¡¡¡¡ con.setRequestProperty("Content-Type",
¡¡¡¡ "application/octet-stream");
¡¡¡¡
¡¡¡¡ OutputStream out = con.getOutputStream();
¡¡¡¡ String localfilepath = localstr + filename; //localfilepath±¾µØ·¾¶,localstrÎļþÎļþ¼Ð£¬filename±¾µØÎļþÃû
¡¡¡¡ getOutputStream(localfilepath,out);//ÎļþgetOutputStreamÊÇ°ÑÎļþlocalfilepathдµ½Êä³öÁ÷outÖС£
¡¡¡¡ InputStream in = con.getInputStream();
¡¡¡¡ return true;
¡¡¡¡ }catch (IOException e) {
¡¡¡¡ System.out.println("ÎļþÉÏ´«³ö´í£¡");
¡¡¡¡ e.printStackTrace();
¡¡¡¡ }
¡¡¡¡servlet¶Ë´úÂëʾÀý
¡¡¡¡ public void service(HttpServletRequest req, HttpServletResponse res)
¡¡¡¡ throws ServletException, IOException {
¡¡¡¡ res.setContentType(" text/plain ");
¡¡¡¡ InputStream inputStream = null;
¡¡¡¡ try {
¡¡¡¡ inputStream = res.getInputStream();
¡¡¡¡ writefile(srcFile, inputStream);//°ÑÊäÈëÁ÷inputStream±£´æµ½Îļþ·¾¶ÎªsrcFileµÄÎļþÖÐ
¡¡¡¡ } catch (IOException e) {
¡¡¡¡ e.printStackTrace();
¡¡¡¡ }
¡¡¡¡ } // end service
¡¡¡¡ ×ܽ᣺ÔÚÎļþµÄ´«ÊäÖÐÊÇÁ÷µÄÐÎʽ´æÔڵģ¬ÔÚÓ²ÅÌÉÏÊÇÎļþµÄÐÎʽ´æÔڵġ£ÎÒÃÇÒª×öµÄÖ»ÊÇͨ¹ýHttpServletRequestºÍHttpServletResponse£¬»òÕßÊÇresponseºÍrequestÀ´·¢ËÍÁ÷ºÍ¶ÁÈ¡Á÷¡£ÒÔ¼°°ÑÎļþת»»³ÉÁ÷»ò°ÑÁ÷ת»»³ÉÎļþµÄ²Ù×÷¡£