亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? backgroundservice.java

?? 利用AJAX..無組件上傳.好東西...共享
?? JAVA
字號:
/**
 * 本例程演示了通過Web上傳文件過程中的進度顯示。您可以對本例程進行任何修改和使用。
 * 如果需要轉載本例程,請您注明作者。
 *
 * 作者: 劉作晨
 * EMail:liuzuochen@gmail.com
 */

package liuzuochen.sample.upload;

/**
 * <p>Title: 后臺服務</p>
 *
 * <p>Description: 為客戶端提供上傳及文件傳輸狀態查詢服務</p>
 *
 */

import java.io.File;
import java.io.IOException;
import java.util.List;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.*;


public class BackGroundService extends javax.servlet.http.HttpServlet implements
        javax.servlet.Servlet {

    public static final String UPLOAD_DIR = "/upload";
    public static final String DEFAULT_UPLOAD_FAILURE_URL = "./result.jsp";

    public BackGroundService() {
        super();
    }


    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response) throws ServletException,
            IOException {
        doPost(request, response);
    }

    /**
     * 從文件路徑中取出文件名
     */
    private String takeOutFileName(String filePath) {
        int pos = filePath.lastIndexOf(File.separator);
        if (pos > 0) {
            return filePath.substring(pos + 1);
        } else {
            return filePath;
        }
    }

    /**
     * 從request中取出FileUploadStatus Bean
     */
    public static FileUploadStatus getStatusBean(
            HttpServletRequest request) {
        BeanControler beanCtrl = BeanControler.getInstance();
        return beanCtrl.getUploadStatus(request.getRemoteAddr());
    }

    /**
     * 把FileUploadStatus Bean保存到類控制器BeanControler
     */
    public static void saveStatusBean(
            HttpServletRequest request,
            FileUploadStatus statusBean) {
        statusBean.setUploadAddr(request.getRemoteAddr());
        BeanControler beanCtrl = BeanControler.getInstance();
        beanCtrl.setUploadStatus(statusBean);
    }

    /**
     * 刪除已經上傳的文件
     */
    private void deleteUploadedFile(HttpServletRequest request) {
        FileUploadStatus satusBean = getStatusBean(request);
        for (int i = 0; i < satusBean.getUploadFileUrlList().size(); i++) {
            File uploadedFile = new File(request.getRealPath(UPLOAD_DIR) +
                                         File.separator +
                                         satusBean.getUploadFileUrlList().
                                         get(i));
            uploadedFile.delete();
        }
        satusBean.getUploadFileUrlList().clear();
        satusBean.setStatus("刪除已上傳的文件");
        saveStatusBean(request, satusBean);
    }

    /**
     * 上傳過程中出錯處理
     */
    private void uploadExceptionHandle(
            HttpServletRequest request,
            String errMsg) throws ServletException, IOException {
        //首先刪除已經上傳的文件
        deleteUploadedFile(request);
        FileUploadStatus satusBean = getStatusBean(request);
        satusBean.setStatus(errMsg);
        saveStatusBean(request, satusBean);
    }

    /**
     * 初始化文件上傳狀態Bean
     */
    private FileUploadStatus initStatusBean(HttpServletRequest
            request) {
        FileUploadStatus satusBean = new FileUploadStatus();
        satusBean.setStatus("正在準備處理");
        satusBean.setUploadTotalSize(request.getContentLength());
        satusBean.setProcessStartTime(System.currentTimeMillis());
        satusBean.setBaseDir(request.getContextPath() + UPLOAD_DIR);
        return satusBean;
    }

    /**
     * 處理文件上傳
     */
    private void processFileUpload(HttpServletRequest request,
                                   HttpServletResponse response) throws
            ServletException, IOException {
        DiskFileItemFactory factory = new DiskFileItemFactory();
        //設置內存緩沖區,超過后寫入臨時文件
        factory.setSizeThreshold(10240000);
        //設置臨時文件存儲位置
        factory.setRepository(new File(request.getRealPath("/upload/temp")));
        ServletFileUpload upload = new ServletFileUpload(factory);
        //設置單個文件的最大上傳值
        upload.setFileSizeMax(102400000);
        //設置整個request的最大值
        upload.setSizeMax(102400000);
        upload.setProgressListener(new FileUploadListener(request));
        //保存初始化后的FileUploadStatus Bean
        saveStatusBean(request, initStatusBean(request));

        String forwardURL = "";
        try {
            List items = upload.parseRequest(request);
            //獲得返回url
            for (int i = 0; i < items.size(); i++) {
                FileItem item = (FileItem) items.get(i);
                if (item.isFormField()) {
                    forwardURL = item.getString();
                    break;
                }
            }
            //處理文件上傳
            for (int i = 0; i < items.size(); i++) {
                FileItem item = (FileItem) items.get(i);

                //取消上傳
                if (getStatusBean(request).getCancel()) {
                    deleteUploadedFile(request);
                    break;
                }
                //保存文件
                else if (!item.isFormField() && item.getName().length() > 0) {
                    String fileName = takeOutFileName(item.getName());
                    File uploadedFile = new File(request.getRealPath(UPLOAD_DIR) +
                                                 File.separator + fileName);
                    item.write(uploadedFile);
                    //更新上傳文件列表
                    FileUploadStatus satusBean =
                            getStatusBean(request);
                    satusBean.getUploadFileUrlList().add(fileName);
                    saveStatusBean(request, satusBean);
                    Thread.sleep(500);
                }
            }

        } catch (FileUploadException e) {
            uploadExceptionHandle(request, "上傳文件時發生錯誤:" + e.getMessage());
        } catch (Exception e) {
            uploadExceptionHandle(request, "保存上傳文件時發生錯誤:" + e.getMessage());
        }
        if (forwardURL.length() == 0) {
            forwardURL = DEFAULT_UPLOAD_FAILURE_URL;
        }
        request.getRequestDispatcher(forwardURL).forward(request, response);
    }

    /**
     * 回應上傳狀態查詢
     */
    private void responseStatusQuery(HttpServletRequest request,
                                              HttpServletResponse response) throws
            IOException {
        response.setContentType("text/xml");
        response.setHeader("Cache-Control", "no-cache");
        FileUploadStatus satusBean = getStatusBean(request);
        response.getWriter().write(satusBean.toJSon());
    }

    /**
     * 處理取消文件上傳
     */
    private void processCancelFileUpload(HttpServletRequest request,
                                         HttpServletResponse response) throws
            IOException {
        FileUploadStatus satusBean = getStatusBean(request);
        satusBean.setCancel(true);
        saveStatusBean(request, satusBean);
        responseStatusQuery(request, response);
    }

    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response) throws ServletException,
            IOException {
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (isMultipart) {
            processFileUpload(request, response);
        } else {
            request.setCharacterEncoding("UTF-8");

            if (request.getParameter("uploadStatus") != null) {
                responseStatusQuery(request, response);
            }
            if (request.getParameter("cancelUpload") != null) {
                processCancelFileUpload(request, response);
            }

        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产真实乱对白精彩久久| 国产精品人成在线观看免费| 国产在线视频一区二区三区| 最近中文字幕一区二区三区| 9191成人精品久久| 91丨porny丨最新| 国产在线精品免费| 亚洲综合视频在线| 日本一区二区三区国色天香| 日韩欧美国产综合| 在线免费观看成人短视频| 国产精品资源在线观看| 免费在线成人网| 亚洲aaa精品| 性做久久久久久| 一卡二卡三卡日韩欧美| 国产精品电影一区二区三区| 久久众筹精品私拍模特| 精品少妇一区二区三区| 国产日韩欧美精品在线| 日韩欧美一级特黄在线播放| 欧美日韩国产免费| 91精品国产91久久久久久最新毛片 | 国产一区二区91| 精品一二三四区| 国内精品国产三级国产a久久 | 国产精品白丝av| 国产一区二区三区国产| 国产乱码精品一区二区三区av | 欧美日韩亚洲综合一区二区三区| 91在线视频播放| 欧美在线视频全部完| 欧美日韩三级一区| 精品国产一区a| 国产精品乱人伦| 亚洲一区二区三区小说| 婷婷国产v国产偷v亚洲高清| 婷婷激情综合网| 国产精品99久久久久久有的能看| 国产东北露脸精品视频| 99精品国产热久久91蜜凸| 欧美性淫爽ww久久久久无| 26uuu久久综合| 亚洲日本一区二区| 经典一区二区三区| 99精品视频在线免费观看| 欧美精品在线视频| 欧美韩日一区二区三区四区| 一区2区3区在线看| 国产伦精品一区二区三区免费| 91美女视频网站| 久久精品亚洲国产奇米99| 久久国产免费看| 蜜臂av日日欢夜夜爽一区| 99久久精品国产一区| 6080国产精品一区二区| 亚洲欧洲日韩一区二区三区| 秋霞国产午夜精品免费视频| 色综合中文字幕| 国产欧美视频一区二区三区| 亚洲午夜精品久久久久久久久| 国产在线不卡视频| 成人性生交大片免费看中文| 国产大片一区二区| av色综合久久天堂av综合| 久久久亚洲精品石原莉奈| 五月天激情综合网| 欧美性感一区二区三区| 亚洲手机成人高清视频| www.在线成人| 国产精品视频一二三区| 国产夫妻精品视频| 久久新电视剧免费观看| 久久精品国产精品亚洲红杏| 日韩视频123| 美国毛片一区二区三区| 日韩欧美综合在线| 精品一区二区三区在线播放| 日韩一级视频免费观看在线| 日韩精品三区四区| 欧美一级二级三级蜜桃| 精品中文字幕一区二区小辣椒| 欧美草草影院在线视频| 精一区二区三区| 久久久www成人免费毛片麻豆| 国产在线乱码一区二区三区| 欧美激情综合五月色丁香| 97se狠狠狠综合亚洲狠狠| 亚洲免费在线看| 日韩一区二区中文字幕| 成熟亚洲日本毛茸茸凸凹| 亚洲女性喷水在线观看一区| 91精品国产综合久久婷婷香蕉| 日韩二区三区四区| 国产精品免费观看视频| 欧美日韩久久久久久| 国产综合色视频| 午夜精品在线看| 中文在线资源观看网站视频免费不卡| 99久久国产综合精品麻豆| 蜜臀99久久精品久久久久久软件 | 欧美专区亚洲专区| 国产在线视视频有精品| 亚洲午夜激情网页| 欧美激情一区二区三区全黄| 欧美高清激情brazzers| fc2成人免费人成在线观看播放| 亚洲成人黄色小说| 国产精品久久久久久久久免费丝袜| 欧美日韩国产首页在线观看| 高清不卡一区二区| 精品亚洲成a人| 日韩精品每日更新| 亚洲裸体在线观看| 亚洲欧洲www| 国产亚洲成年网址在线观看| 日韩精品一区在线| 91精品国产综合久久久蜜臀图片 | 国产成人99久久亚洲综合精品| 性欧美大战久久久久久久久| 国产精品乱码一区二区三区软件| 337p日本欧洲亚洲大胆精品| 欧美人牲a欧美精品| 91麻豆精品国产91久久久资源速度| 色综合天天综合网天天狠天天 | 国产无人区一区二区三区| 精品免费视频一区二区| 国产拍揄自揄精品视频麻豆| 精品久久久久久亚洲综合网 | 亚洲国产综合人成综合网站| 亚洲精品免费在线| 亚洲风情在线资源站| 亚洲va国产va欧美va观看| 天堂久久久久va久久久久| 日韩电影在线看| 国产精品一品视频| av在线一区二区| 欧美福利一区二区| 精品久久久久久久久久久院品网| 精品裸体舞一区二区三区| 国产欧美精品一区二区色综合 | 久久久午夜精品| 国产偷v国产偷v亚洲高清| 亚洲精品乱码久久久久久黑人| 久草中文综合在线| 99久久精品国产网站| 欧美日韩一本到| 中文幕一区二区三区久久蜜桃| 亚洲欧美一区二区三区极速播放| 亚洲成人激情综合网| av成人动漫在线观看| 九色porny丨国产精品| 久久激五月天综合精品| 成人av午夜影院| 欧美日韩和欧美的一区二区| 欧美不卡激情三级在线观看| 国产精品久久久久久久久久久免费看| 亚洲一区在线播放| 不卡电影免费在线播放一区| 69精品人人人人| 一区二区免费视频| 成人高清免费在线播放| 69久久99精品久久久久婷婷| 一区二区三区在线播| 国产91对白在线观看九色| 91精品国产高清一区二区三区蜜臀| 中文字幕亚洲在| 粉嫩欧美一区二区三区高清影视 | 在线日韩一区二区| 国产精品久线观看视频| 国产制服丝袜一区| 日韩欧美国产综合在线一区二区三区| 一区二区三区中文在线观看| 波多野结衣亚洲一区| 制服丝袜在线91| 五月激情综合网| 欧美视频在线一区| 亚洲一区精品在线| 91福利资源站| 一区二区三区在线播| 欧美私模裸体表演在线观看| 亚洲美女淫视频| 欧美视频一区二区三区| 天堂精品中文字幕在线| 91精品国产综合久久蜜臀| 精品一区二区三区日韩| 久久精品人人做| 一本久久综合亚洲鲁鲁五月天 | 在线亚洲人成电影网站色www| 亚洲精品亚洲人成人网| 欧美精品丝袜中出| 黑人巨大精品欧美黑白配亚洲| 欧美大片在线观看| 美女网站在线免费欧美精品| 在线观看亚洲a| 麻豆视频一区二区| 亚洲欧美日韩国产综合在线| 欧美性生活一区| 韩国三级中文字幕hd久久精品| 中文字幕欧美日韩一区|