kpppkk 2015-11-26 15:41 采纳率: 0%
浏览 1496

非阻塞异步处理。敬请高人指点,不胜感激。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
/c:set
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">







555-555

.a{float:left;width:120px;height:150px;border:0px solid green;margin-left:15px;margin-top:15px;} .img{width:120px; height:150px;z-index:1;border-radius:7px;} .bottom{width:100%;height:22px;border:0px solid red; position:relative; left:0px;bottom:42px; z-index:2; background:#696969 ;} #x{width:16px;height:19px;border:0px solid red; position:relative; z-index:2; left:47px;} #a2{width:16px;height:19px;border:0px solid red; position:relative; z-index:2; left:47px;} .xx{width:16px;height:19px;margin-left:0px;margin-top:-18px;} #pn{width:85px;height:18px;border:0px solid red;margin-left:4px; margin-top:-16px;float:left; z-index:2; } #wap{margin :0px auto; width:990px;height:auto;border:1px solid red;} #dd{ width:990px;height:180px;border:1px solid red;background:#FFA488;} #b1{ width:80px;height:25px;} #b2{ width:80px;height:25px;margin-left:30px;} body{background:#87CEFA;} .p1{position:relative;z-index:2;} .b{height:100%;width:0px;background:green;float:left;} .z1{height:100%;width:100%;float:left; position:relative; left:0px; bottom:18px; z-index:-2;} .s {width:100%; height:18px;border:1px solid #778899;position:relative;left:0px;bottom:80px; z-index:2; visibility:hidden;} <p></head><br> <body><br> <center><br> <div id="wap"><br> &lt;%--<br> <input id="doc" type="file" name="file" multiple="true" style="width:150px;" accept="image/*"><br> --%&gt;<br> <input id="doc" type="file" name="file" multiple="true" style="width:150px;"><br> <div id="dd"></div><br> </div><br> <input id="b1" onclick="javascript:$.uplos();" type="submit" value="开始上传"><br> <button id="b2" onclick="javascript:$.d();">取消上传</button><br> </center><br> </body></html></p>
  • 写回答

2条回答 默认 最新

  • kpppkk 2015-11-26 15:45
    关注

    package com.servlet;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintWriter;
    import java.lang.reflect.Method;
    import java.util.Arrays;
    import java.util.List;
    import java.util.Random;

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

    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.ProgressListener;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;

    import sun.management.counter.Variability;

    import com.dao.PicDAO;
    import com.entity.Picture;
    import com.entity.User;
    import com.listner.UploadProgress;
    import com.listner.UserProperties;

    public class UploadServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public UploadServlet() {
        super();
    }
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
    
    private  PicDAO picDAO = new PicDAO();
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        response.setCharacterEncoding("UTF-8");
        String methodName = request.getParameter("method");
            try {
                Method method = getClass().getDeclaredMethod(methodName, HttpServletRequest.class,HttpServletResponse.class);
                method.setAccessible(true);
                method.invoke(this,request,response);
            } catch (Exception e) {
                e.printStackTrace();
                throw new RuntimeException(e);      
            }
    }
    protected void uploadAjax3(HttpServletRequest request, HttpServletResponse response) throws Exception{
        response.setContentType("text/xml;charset=UTF-8"); 
        DiskFileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setHeaderEncoding("UTF-8");
    
        List<FileItem> items = upload.parseRequest(request);
    
        String fileMaxSize = UserProperties.getInstance().getProperty("fileMaxSize");
        String totleFileMaxSize = UserProperties.getInstance().getProperty("totalFileMaxSize");
        upload.setSizeMax(Integer.parseInt(totleFileMaxSize));
        upload.setFileSizeMax(Integer.parseInt(fileMaxSize));
    

    // HttpSession session = request.getSession();
    // User user = (User) session.getAttribute("user");
    long id3 = 10;

    //  long id3 = Long.parseLong(request.getParameter("id3"));
    

    // response.setHeader("Cache-Control","no-cache");
    // PrintWriter pw = response.getWriter();
    String name = request.getParameter("name");
    System.out.println(name);
    for (FileItem item : items) {
    if (item.isFormField()) {
    String value = item.getString();
    }else{
    String pathP = UserProperties.getInstance().getProperty("url");
    File file = new File(pathP + "/" + "pic_" + id3);
    if (!file.exists()) {
    file.mkdirs();
    }else{
    String picName = item.getName();
    picName = picName.substring(picName.lastIndexOf("/") + 1);

    String exts = picName.substring(picName.lastIndexOf("."));
    String exts2 = picName.substring(picName.lastIndexOf(".") + 1);
    String extsName = UserProperties.getInstance().getProperty("extsName");
    List extsN = Arrays.asList(extsName.split(","));

                    InputStream in = null;
                    FileOutputStream fos = null;
                    try {/*
                        if (!extsN.contains(exts2)) {
                            pw.print("a1");
                            pw.flush();
                            return;
                        }else{
                            if (item.getSize() == 0 || item.getSize() > upload.getFileSizeMax()) {
                                pw.print("a2");
                                pw.flush();
                                return;
                            }else{*/
    
                        //      pw.print("a3");         
                        //      totalSize = request.getContentLength();
                                Random random = new Random();
                                int randomNuber = random.nextInt(1000);
                                String tmpPath = pathP + "/"  + "pic_" + id3 + "/" + System.currentTimeMillis() + randomNuber + exts;
    
                                b = item.getSize();                             
    
                                String s = b + name;
                                System.out.println(s + "ff");
    
                                in = item.getInputStream();
                                fos = new FileOutputStream(new File(tmpPath));
                                byte[] buffer = new byte[1024]; 
                                int n;
                                a = 0L;                             
                                while ((n = in.read(buffer)) != -1) { 
                                    fos.write(buffer, 0, n);
                                    a += (long) n;  }   
                                fos.flush();   
                                fos.close();
                                in.close();                                                                                     
                                item.delete();      // 内存中删除该数据流  
                                Picture picture = new Picture();
                                picture.setPicName(picName);
                                picture.setPicUrl(tmpPath);
                                picture.setUserId(id3);
                                picDAO.sava(picture);
                    //          pw.flush();
                //          }
                //      }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
    
    protected void status(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setContentType("text/xml");
        response.setHeader("Cache-Control","no-cache"); 
        System.out.println("来自servletrrrrrrrrrrrrrrr");
        try {
            if (a == 0 && b == 0) {
                int percent = 0;
                response.getWriter().print(percent);
                response.getWriter().flush();
            }else 
            if (b > 0 && b > a) {
                int percent = (int) (a * 100 /b);         
                response.getWriter().print(percent);
                response.getWriter().flush();
            }else if (b > 0 && a > 0 && b== a) {
                int percent = 100;
                response.getWriter().print(percent);
                response.getWriter().flush();
                b = 0L;a = 0L;
            }
        } catch (Exception e) {         
            e.printStackTrace();
        }
    }   
      private long a = 0L;
      private long b = 0L;
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分