国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

采用HttpServlet 實現web文件下載

2024-07-21 02:14:49
字體:
來源:轉載
供稿:網友
  • 網站運營seo文章大全
  • 提供全面的站長運營經驗及seo技術!
  • import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import com.topwisdom.framework.util.*;

    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);
     }
     file://取得附件的名稱
     public static string getattachname(string file_name) {
      if(file_name==null) return "";
      file_name = file_name.trim();
      int ipos = 0;
      ipos = file_name.lastindexof("http://");
      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;
     }
     file://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;
     }
     file://取得下載文件的真實全路徑名稱
     private string getrealname(httpservletrequest request,string file_name) {
      if(request==null || file_name==null) return null;
      file_name = file_name.trim();
      if(file_name.equals("")) return null;
     
      string file_path = request.getrealpath(file_name);
      if ( file_path== null) return null;
      file file = new file(file_path);
      if (!file.exists()) return null;
      return file_path;
     }
     file://實現下載
     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 {
       file://取得附件的名稱
       attch_name = getattachname(file_name);
      
       file_name  = getrealname(request,file_name);
       if(file_name==null) {
        system.out.println("文件不存在,或者禁止下載");
        return ;
       }
       attch_name = toutf8string(attch_name);
       file://讀到流中
       instream=new fileinputstream(file_name);
       file://設置輸出的格式
       response.reset();
       response.setcontenttype("application/x-msdownload");
      
      
       response.addheader("content-disposition","attachment; filename=/"" + attch_name + "/"");
       file://循環取出流中的數據
       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);
       }
      }
     }
    }

    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 涞源县| 吐鲁番市| 古浪县| 九台市| 河北省| 长春市| 东兴市| 蛟河市| 钟祥市| 旬邑县| 邹城市| 扎鲁特旗| 儋州市| 确山县| 象州县| 忻城县| 田阳县| 清丰县| 横峰县| 林周县| 南城县| 南宫市| 奉化市| 囊谦县| 曲沃县| 枣阳市| 扶绥县| 石渠县| 正蓝旗| 深泽县| 鲜城| 将乐县| 巴彦县| 曲阜市| 内丘县| 政和县| 竹北市| 孟州市| 莱阳市| 清流县| 赤峰市|