<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    天空是藍色的

    做好軟件為中國 #gcc -c helloworld.c -o helloworld.o //編譯目標文件 #gcc helloworld.o -o helloworld //編譯成可執行exe #helloworld //運行exe
    數據加載中……
    采用HttpServlet 實現web文件下載
    package com.TopWisdom.framework.web;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;

    import com.TopWisdom.framework.util.*;

    /**
     * <p>Title: tomcat 5.59文件下載</p>
     * <p>Description: 困惑我與我的項目組很久的web文件下載,今天終于解決了,借此也奉獻給與我一樣的困惑的朋友</p>
     * <p>Copyright: 拓智軟件 版權所有</p>
     * <p>Company: 拓智軟件(TopWisdom)</p>
     * 
    @author 李光明
     * 
    @version 1.0
     
    */

    public class WebDownLoad extends HttpServlet {
        
    public WebDownLoad() {
     }


     
    private ServletConfig config;

     
    public void init(ServletConfig config) throws ServletException {
      
    super.init(config);
      
    this.config = config;
     }


     
    public void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException {
      doGet(req,res);
     }

     
    //取得附件的名稱
     public static String getAttachName(String file_name) {
      
    if(file_name==nullreturn "";
      file_name 
    = file_name.trim();
      
    int iPos = 0;
      iPos 
    = file_name.lastIndexOf("\\");
      
    if(iPos>-1){
       file_name 
    = file_name.substring(iPos+1);
      }

      iPos 
    = file_name.lastIndexOf("/");
      
    if(iPos>-1){
       file_name 
    = file_name.substring(iPos+1);
      }

      iPos 
    = file_name.lastIndexOf(File.separator);
      
    if(iPos>-1){
       file_name 
    = file_name.substring(iPos+1);
      }

      
    return file_name;
     }

     
    //UTF8轉碼
     public static String toUtf8String(String s) {
      StringBuffer sb 
    = new StringBuffer();
      
    for (int i=0;i<s.length();i++{
       
    char c = s.charAt(i);
       
    if (c >= 0 && c <= 255{
        sb.append(c);
       }
     else {
        
    byte[] b;
        
    try {
         b 
    = Character.toString(c).getBytes("utf-8");
        }
     catch (Exception ex) {
         System.out.println(ex);
         b 
    = new byte[0];
        }

        
    for (int j = 0; j < b.length; j++{
         
    int k = b[j];
         
    if (k < 0) k += 256;
         sb.append(
    "%" + Integer.toHexString(k).toUpperCase());
        }

       }

      }

      String s_utf8 
    = sb.toString();
      sb.delete(
    0,sb.length());
      sb.setLength(
    0);
      sb 
    = null;
      
    return s_utf8;
     }

     
    //取得下載文件的真實全路徑名稱
     private String getRealName(HttpServletRequest request,String file_name) {
      
    if(request==null || file_name==nullreturn null;
      file_name 
    = file_name.trim();
      
    if(file_name.equals("")) return null;
      
      String file_path 
    = request.getRealPath(file_name);
      
    if ( file_path== nullreturn null;
      File file 
    = new File(file_path);
      
    if (!file.exists()) return null;
      
    return file_path;
     }

     
    //實現下載
     public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException {
      String file_name 
    = request.getParameter("file_name");
      
    if(file_name==null) file_name = "";
      file_name 
    = file_name.trim();
      
      InputStream inStream
    = null;
      String attch_name 
    = "";
      
      
    byte[] b  = new byte[100]; 
      
    int    len= 0
      
    try {
       
    //取得附件的名稱
       attch_name = getAttachName(file_name);
       
       file_name  
    = getRealName(request,file_name);
       
    if(file_name==null{
        System.out.println(
    "文件不存在,或者禁止下載");
        
    return ;
       }

       attch_name 
    = toUtf8String(attch_name);
       
    //讀到流中
       inStream=new FileInputStream(file_name); 
       
    //設置輸出的格式 
       response.reset(); 
       response.setContentType(
    "application/x-msdownload"); 
       
       
       response.addHeader(
    "Content-Disposition","attachment; filename=\"" + attch_name + "\"");
       
    //循環取出流中的數據 
       while((len=inStream.read(b)) >0{
        response.getOutputStream().write(b,
    0,len); 
       }

       inStream.close(); 
      }
    catch ( Exception e ){
       
    if ( e instanceof java.io.FileNotFoundException ) {
        
    try {
         response.sendRedirect(
    "/tip/file_not_found.html");
        }

        
    catch ( IOException ex ) {
         ex.printStackTrace(System.err);
        }

       }

       
    else {
        e.printStackTrace(System.err);
       }

      }

     }

     

    }



    作者Blog:http://blog.csdn.net/gmlee2004/

    posted on 2005-11-24 10:47 bluesky 閱讀(346) 評論(0)  編輯  收藏 所屬分類: 工作總結

    主站蜘蛛池模板: 巨胸狂喷奶水视频www网站免费| 亚洲国产日韩在线观频| 亚洲一级Av无码毛片久久精品| 亚洲视频免费一区| 四虎国产精品免费久久| 久久av无码专区亚洲av桃花岛| 美女视频黄的全免费视频| 亚洲AV无码一区二区三区久久精品 | 91麻豆国产自产在线观看亚洲| 男人的天堂网免费网站| 日韩一卡2卡3卡4卡新区亚洲| 久久免费公开视频| 亚洲伊人久久大香线蕉AV| 亚洲天堂免费在线| 香港经典a毛片免费观看看| 亚洲成在人天堂一区二区| 国产免费69成人精品视频| 免费无码中文字幕A级毛片| 亚洲av永久无码天堂网| 亚洲国产人成在线观看69网站| 成人免费毛片视频| 99re6在线精品免费观看| 国产亚洲成av片在线观看| 在线成人精品国产区免费| 亚洲国产精品无码久久久不卡| 全免费a级毛片免费看| 亚洲啪AV永久无码精品放毛片| 狠狠色伊人亚洲综合成人| 在线观看免费精品国产| 日韩精品亚洲专区在线影视| 久久久久亚洲精品无码系列| 免费观看日本污污ww网站一区| 亚洲免费福利视频| 在线aⅴ亚洲中文字幕| 国产亚洲精品精华液| 又色又污又黄无遮挡的免费视| 免费一级毛suv好看的国产网站| 久久亚洲国产成人精品无码区| 亚洲精品动漫免费二区| 91禁漫免费进入| 久久WWW免费人成—看片|