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

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

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

    Dict.CN 在線詞典, 英語學習, 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統計

    留言簿(23)

    積分與排名

    優秀學習網站

    友情連接

    閱讀排行榜

    評論排行榜

    一個文件下載的Servlet

    把文件目錄直接暴露給用戶是很不安全的。所以要用Servlet來做,而且這樣做,文件的存儲方式就更豐富了,可以是從文件系統上取來的,也可以是數據庫中經過計算生成的,或者從其它什么稀奇古怪的地方取來的。

    public class DownloadServlet extends HttpServlet {
        
    private String contentType = "application/x-msdownload";
        
    private String enc = "utf-8";
        
    private String fileRoot = "";


        
    /**
         * 初始化contentType,enc,fileRoot
         
    */
        
    public void init(ServletConfig config) throws ServletException {
            String tempStr 
    = config.getInitParameter("contentType");
            
    if (tempStr != null && !tempStr.equals("")) {
                contentType 
    = tempStr;
            }
            tempStr 
    = config.getInitParameter("enc");
            
    if (tempStr != null && !tempStr.equals("")) {
                enc 
    = tempStr;
            }
            tempStr 
    = config.getInitParameter("fileRoot");
            
    if (tempStr != null && !tempStr.equals("")) {
                fileRoot 
    = tempStr;
            }
        }

        
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String filepath 
    = request.getParameter("filepath");
            String fullFilePath 
    = fileRoot + filepath;
            
    /*讀取文件*/
            File file 
    = new File(fullFilePath);
            
    /*如果文件存在*/
            
    if (file.exists()) {
                String filename 
    = URLEncoder.encode(file.getName(), enc);
                response.reset();
                response.setContentType(contentType);
                response.addHeader(
    "Content-Disposition""attachment; filename=\"" + filename + "\"");
                
    int fileLength = (int) file.length();
                response.setContentLength(fileLength);
                
    /*如果文件長度大于0*/
                
    if (fileLength != 0) {
                    
    /*創建輸入流*/
                    InputStream inStream 
    = new FileInputStream(file);
                    
    byte[] buf = new byte[4096];
                    
    /*創建輸出流*/
                    ServletOutputStream servletOS 
    = response.getOutputStream();
                    
    int readLength;
                    
    while (((readLength = inStream.read(buf)) != -1)) {
                        servletOS.write(buf, 
    0, readLength);
                    }
                    inStream.close();
                    servletOS.flush();
                    servletOS.close();
                }
            }
        }

    web.xml
        <servlet>
            
    <servlet-name>downloadservlet-name>
            
    <servlet-class>org.mstar.servlet.DownloadServletservlet-class>
            
    <init-param>
                
    <param-name>fileRootparam-name>
                
    <param-value>d:/tempparam-value>
            
    init-param>
            
    <init-param>
                
    <param-name>contentTypeparam-name>
                
    <param-value>application/x-msdownloadparam-value>
            
    init-param>
            
    <init-param>
                
    <param-name>encparam-name>
                
    <param-value>utf-8param-value>
            
    init-param>
        
    servlet>
        
    <servlet-mapping>
            
    <servlet-name>downloadservlet-name>
            
    <url-pattern>/downurl-pattern>
        
    servlet-mapping>

    posted on 2007-11-07 14:33 都市淘沙者 閱讀(432) 評論(0)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

    主站蜘蛛池模板: 深夜a级毛片免费无码| 亚洲香蕉免费有线视频| 久久av无码专区亚洲av桃花岛| 国产精品爱啪在线线免费观看| 亚洲国产精品成人综合色在线| 亚洲AV无码成人精品区大在线| 久久九九全国免费| 亚洲日本在线电影| 亚洲不卡av不卡一区二区| 最近2019中文免费字幕| 久久精品无码专区免费| 香蕉大伊亚洲人在线观看| 亚洲色成人中文字幕网站| 很黄很色很刺激的视频免费| 一级成人a做片免费| 亚洲不卡视频在线观看| 亚洲无码视频在线| 在线a级毛片免费视频| 91国内免费在线视频| 亚洲丰满熟女一区二区哦| 亚洲AV色香蕉一区二区| 国产一级淫片a免费播放口之 | 两性色午夜视频免费播放| 亚洲欧洲日本在线观看| 亚洲成a人片77777kkkk| 国产美女精品视频免费观看| 蜜桃AV无码免费看永久| 国产高清视频免费在线观看| 亚洲人成色99999在线观看| 少妇中文字幕乱码亚洲影视| 国产精品亚洲二区在线观看| 女人张开腿给人桶免费视频| 91香蕉在线观看免费高清| 精品久久久久久国产免费了| 亚洲国产欧美国产综合一区| 33333在线亚洲| 在线观看亚洲人成网站| 精品国产综合成人亚洲区| 亚洲av无码不卡私人影院| 国产精品无码一区二区三区免费| 亚欧在线精品免费观看一区|