Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery和Java(Servlet)文件上载,包括删除、中止、下载。。。。。选择权_Java_Javascript_Jquery_Html_Servlets - Fatal编程技术网

Jquery和Java(Servlet)文件上载,包括删除、中止、下载。。。。。选择权

Jquery和Java(Servlet)文件上载,包括删除、中止、下载。。。。。选择权,java,javascript,jquery,html,servlets,Java,Javascript,Jquery,Html,Servlets,我正在尝试上载文件(使用Jquery和Servlet) 登录页 单击添加文件按钮添加多个文件并调用servlet。 文件已成功上载。作为回应,我得到了json数据 Servlet文件: UploadServlet.java public class UploadServlet extends HttpServlet { private File fileUploadPath; public void init(ServletConfig config) {

我正在尝试上载文件(使用Jquery和Servlet)

  • 登录页
  • 单击添加文件按钮添加多个文件并调用servlet。 文件已成功上载。作为回应,我得到了json数据 Servlet文件:
    UploadServlet.java

        public class UploadServlet extends HttpServlet {
        private File fileUploadPath;   
        public void init(ServletConfig config) {
            fileUploadPath = new File(config.getInitParameter("upload_path"));
        }
       @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            if (request.getParameter("getfile") != null && !request.getParameter("getfile").isEmpty()) {        
               File file = new File(fileUploadPath,request.getParameter("getfile"));            
                if (file.exists()) {
                    int bytes = 0;
                    ServletOutputStream op = response.getOutputStream();
    
                    response.setContentType("text/html");
                    response.setContentType(getMimeType(file));
                    response.setContentLength((int) file.length());
                    response.setHeader( "Content-Disposition", "inline; filename=\"" + file.getName() + "\"" );
    
                    byte[] bbuf = new byte[1024];
                    DataInputStream in = new DataInputStream(new FileInputStream(file));
                    while ((in != null) && ((bytes = in.read(bbuf)) != -1)) {
                        op.write(bbuf, 0, bytes);
                    }
                    in.close();
                    op.flush();
                    op.close();
                }
            } else if (request.getParameter("delfile") != null && !request.getParameter("delfile").isEmpty()) {
             File file = new File(fileUploadPath, request.getParameter("delfile"));
                if (file.exists()) {
                    file.delete(); // TODO:check and report success
                } 
            } else if (request.getParameter("getthumb") != null && !request.getParameter("getthumb").isEmpty()) {
             File file = new File(fileUploadPath, request.getParameter("getthumb"));
             BufferedImage im =null;
                    if (file.exists()) {
                        String mimetype = getMimeType(file);
                        if (mimetype.endsWith("png") || mimetype.endsWith("jpeg") || mimetype.endsWith("gif")           
    
                        {    im = ImageIO.read(file);       
                                 if (im != null) {
                                BufferedImage thumb = Scalr.resize(im, 75); 
                                ByteArrayOutputStream os = new ByteArrayOutputStream();
                                if (mimetype.endsWith("png")) {
                                    ImageIO.write(thumb, "PNG" , os);
                                    response.setContentType("image/png");
                                } else if (mimetype.endsWith("jpeg")) {
                                    ImageIO.write(thumb, "jpg" , os);
                                    response.setContentType("image/jpeg");
                                } else if (mimetype.endsWith("gif")) {
                                    ImageIO.write(thumb, "GIF" , os);
                                    response.setContentType("image/gif");
                                }else{
                                    ImageIO.write(thumb, "doc" , os);
                                    response.setContentType("image/doc");
                                }
                                ServletOutputStream srvos = response.getOutputStream();
                                response.setContentLength(os.size());
                                response.setHeader( "Content-Disposition", "inline; filename=\"" + file.getName() + "\"" );
                                os.writeTo(srvos);
                                srvos.flush();
                                srvos.close();
                            }
                        }
                } 
           } else {
                PrintWriter writer = response.getWriter();
                writer.write("call POST with multipart form data");
            }
        }    
    
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
            if (!ServletFileUpload.isMultipartContent(request)) {
                throw new IllegalArgumentException("Request is not multipart, please 'multipart/form-data' enctype for your form.");
            }
            DiskFileItemFactory ldch_disk_file = new DiskFileItemFactory();
            ldch_disk_file.setRepository(fileUploadPath);         
            ServletFileUpload uploadHandler = new ServletFileUpload(ldch_disk_file);
            PrintWriter writer = response.getWriter();
            response.setContentType("application/json");
            JSONArray json = new JSONArray();
            try {
                List<FileItem> items = uploadHandler.parseRequest(request);
                for (FileItem item : items) {
                    if (!item.isFormField()) {
                            File file = new File(fileUploadPath, item.getName());
                            item.write(file);
                            JSONObject jsono = new JSONObject();
                            jsono.put("name", item.getName());
                            jsono.put("size", item.getSize());
                            jsono.put("url", "upload?getfile=" + item.getName());
                            jsono.put("thumbnail_url", "upload?getthumb=" + item.getName());
                            jsono.put("delete_url", "upload?delfile=" + item.getName());
                            jsono.put("delete_type", "GET");
                            json.put(jsono);
                    }
                }
            } catch (FileUploadException e) {
                    throw new RuntimeException(e);
            } catch (Exception e) {
                    throw new RuntimeException(e);
            } finally {
                writer.write(json.toString());
                writer.close();
            }
        }
        private String getMimeType(File file) {
            String mimetype = "";
            if (file.exists()) {
                if (getSuffix(file.getName()).equalsIgnoreCase("png")) {
                    mimetype = "image/png";
                } else  if (getSuffix(file.getName()).equalsIgnoreCase("docx")) {
                    mimetype = "image/doc";
                }else {
                    javax.activation.MimetypesFileTypeMap mtMap = new javax.activation.MimetypesFileTypeMap();
                    mimetype  = mtMap.getContentType(file);
                }        }
            System.out.println("mimetype: " + mimetype);
            return mimetype;
        }
        private String getSuffix(String filename) {
            String suffix = "";
            int pos = filename.lastIndexOf('.');
            if (pos > 0 && pos < filename.length() - 1) {
                suffix = filename.substring(pos + 1);
            }
            System.out.println("suffix: " + suffix);
            return suffix;  
        }
    
    公共类UploadServlet扩展了HttpServlet{ 私有文件上传路径; public void init(ServletConfig配置){ fileUploadPath=新文件(config.getInitParameter(“upload_path”); } @凌驾 受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{ if(request.getParameter(“getfile”)!=null&&!request.getParameter(“getfile”).isEmpty(){ File File=新文件(fileUploadPath,request.getParameter(“getfile”); if(file.exists()){ int字节=0; ServletOutputStream op=response.getOutputStream(); response.setContentType(“text/html”); setContentType(getMimeType(文件)); response.setContentLength((int)file.length()); response.setHeader(“内容处置”,“内联;文件名=\”+文件.getName()+“\”); 字节[]bbuf=新字节[1024]; DataInputStream in=新DataInputStream(新文件InputStream(文件)); 而((in!=null)&&((bytes=in.read(bbuf))!=-1)){ op.write(bbuf,0,字节); } in.close(); op.flush(); op.close(); } }else if(request.getParameter(“delfile”)!=null&&!request.getParameter(“delfile”).isEmpty()){ File File=新文件(fileUploadPath,request.getParameter(“delfile”); if(file.exists()){ file.delete();//TODO:检查并报告成功 } }else if(request.getParameter(“gethumb”)!=null&&!request.getParameter(“gethumb”).isEmpty(){ File File=新文件(fileUploadPath,request.getParameter(“gethumb”); BuffereImage im=null; if(file.exists()){ 字符串mimetype=getMimeType(文件); if(mimetype.endsWith(“png”)| | mimetype.endsWith(“jpeg”)| | mimetype.endsWith(“gif”) {im=ImageIO.read(文件); 如果(im!=null){ BuffereImage thumb=缩放大小(im,75); ByteArrayOutputStream os=新建ByteArrayOutputStream(); if(mimetype.endsWith(“png”)){ ImageIO.write(拇指,“PNG”,操作系统); response.setContentType(“image/png”); }else if(mimetype.endsWith(“jpeg”)){ 写(拇指,“jpg”,操作系统); response.setContentType(“图像/jpeg”); }else if(mimetype.endsWith(“gif”)){ ImageIO.write(拇指,“GIF”,操作系统); response.setContentType(“image/gif”); }否则{ ImageIO.write(拇指,“文档”,操作系统); response.setContentType(“图像/文档”); } ServletOutputStream srvos=response.getOutputStream(); response.setContentLength(os.size()); response.setHeader(“内容处置”,“内联;文件名=\”+文件.getName()+“\”); 书面操作系统(srvos); srvos.flush(); srvos.close(); } } } }否则{ PrintWriter=response.getWriter(); write(“包含多部分表单数据的呼叫站”); } } @凌驾 受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{ 如果(!ServletFileUpload.isMultipartContent(请求)){ 抛出新的IllegalArgumentException(“请求不是多部分的,请为您的表单“多部分/表单数据”enctype”); } DiskFileItemFactory ldch_disk_file=新的DiskFileItemFactory(); ldch_disk_file.setRepository(fileUploadPath); ServletFileUpload uploadHandler=新的ServletFileUpload(ldch\U磁盘\U文件); PrintWriter=response.getWriter(); setContentType(“应用程序/json”); JSONArray json=新的JSONArray(); 试一试{ 列表项=uploadHandler.parseRequest(请求); 用于(文件项:项){ 如果(!item.isFormField()){ File File=新文件(fileUploadPath,item.getName()); 项目。写入(文件); JSONObject jsono=新的JSONObject(); put(“name”,item.getName()); put(“size”,item.getSize()); put(“url”,“upload?getfile=“+item.getName()); jsono.put(“缩略图url”,“上传?getthumb=“+item.getName()”); put(“delete_url”,“upload?delfile=“+item.getName()); put(“delete_type”、“GET”); json.put(jsono); } } }捕获(文件上载异常){ 抛出新的运行时异常(e); }捕获(例外e){ 抛出新的运行时异常(e); }最后{ write(json.toString()); writer.close(); } } 私有字符串getMimeType(Fil