<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/開源資料

    主站蜘蛛池模板: 亚洲国产精品自在拍在线播放 | 国产精品成人免费观看| 亚洲人成伊人成综合网久久久| 免费观看久久精彩视频| 中文有码亚洲制服av片| 亚洲七七久久精品中文国产| 8x8x华人永久免费视频| 国产精品亚洲а∨天堂2021| 亚洲AV日韩AV天堂久久| 亚洲色大网站WWW永久网站| 亚洲国产中文字幕在线观看| 最近中文字幕免费2019| 无遮挡呻吟娇喘视频免费播放| 亚洲AV综合色一区二区三区| 免费观看的av毛片的网站| 免费在线观影网站| 欧美亚洲国产SUV| 久久精品国产亚洲av高清漫画| 国产精品久免费的黄网站| 5g影院5g天天爽永久免费影院| 另类专区另类专区亚洲| 亚洲最新中文字幕| 国产亚洲?V无码?V男人的天堂 | 免费人成在线观看播放a| 亚洲卡一卡2卡三卡4麻豆| 亚洲午夜福利在线观看| 国产精品视_精品国产免费| 中文免费观看视频网站| 国产日韩久久免费影院| 亚洲精品成a人在线观看夫| 亚洲好看的理论片电影| 999久久久免费精品国产| 两个人看的www视频免费完整版| 亚洲精品无码永久在线观看男男| 亚洲自偷自偷精品| 亚洲线精品一区二区三区| 亚洲AⅤ永久无码精品AA| 好爽又高潮了毛片免费下载 | 在线免费观看一区二区三区| 日韩免费无码视频一区二区三区 | 亚洲精品中文字幕无码A片老|