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

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

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

    天空是藍(lán)色的

    做好軟件為中國 #gcc -c helloworld.c -o helloworld.o //編譯目標(biāo)文件 #gcc helloworld.o -o helloworld //編譯成可執(zhí)行exe #helloworld //運(yùn)行exe
    數(shù)據(jù)加載中……
    采用HttpServlet 實(shí)現(xiàn)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: 困惑我與我的項(xiàng)目組很久的web文件下載,今天終于解決了,借此也奉獻(xiàn)給與我一樣的困惑的朋友</p>
     * <p>Copyright: 拓智軟件 版權(quán)所有</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轉(zhuǎn)碼
     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;
     }

     
    //取得下載文件的真實(shí)全路徑名稱
     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;
     }

     
    //實(shí)現(xiàn)下載
     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); 
       
    //設(shè)置輸出的格式 
       response.reset(); 
       response.setContentType(
    "application/x-msdownload"); 
       
       
       response.addHeader(
    "Content-Disposition","attachment; filename=\"" + attch_name + "\"");
       
    //循環(huán)取出流中的數(shù)據(jù) 
       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) 評(píng)論(0)  編輯  收藏 所屬分類: 工作總結(jié)

    主站蜘蛛池模板: 亚洲天堂一区二区三区| 亚洲图片一区二区| 亚洲中文字幕无码一久久区| 亚洲精品无码专区久久久| 亚洲成AV人片在线观看| 亚洲同性男gay网站在线观看| 亚洲男人天堂2018av| 国产偷国产偷亚洲高清人| 一区二区三区免费视频网站| 国产免费拔擦拔擦8X高清在线人| 亚洲日韩精品一区二区三区无码| 久久精品九九亚洲精品天堂| 亚洲精品韩国美女在线| 亚洲国产成人精品无码区花野真一| 男人免费视频一区二区在线观看 | 国内精品久久久久影院亚洲| 亚洲JIZZJIZZ妇女| 中国一级毛片视频免费看| 中文字幕免费在线看线人| 免费国产不卡午夜福在线| 亚洲国产精品无码AAA片| 亚洲高清有码中文字| 国产成人自产拍免费视频| 中国人xxxxx69免费视频| 国产yw855.c免费视频| 亚洲天堂一区二区| 亚洲AV噜噜一区二区三区| 你懂的网址免费国产| 精品久久久久国产免费| 亚洲中文字幕无码一久久区| 亚洲五月综合网色九月色| caoporn成人免费公开| 91高清免费国产自产| 亚洲精品无码日韩国产不卡?V| 亚洲精品免费在线| 一个人看的www免费在线视频| 成人免费观看一区二区| 最新精品亚洲成a人在线观看| 亚洲精品二三区伊人久久| 99久久免费国产精品热| 在线看片人成视频免费无遮挡|