JAVA上传文件代码(struts2版本)

老的struts2的支持的文件上传,返还的是文件名称

String uploadSignFile(String savePath) {
        MultiPartRequestWrapper wrapper = (MultiPartRequestWrapper)request;
        //从请求包装获取文件域的名字
        Enumeration fileParameterNames = wrapper.getFileParameterNames();
        while(fileParameterNames != null && fileParameterNames.hasMoreElements()){
            //得到下一个文件域的name属性值
            String inputName = (String) fileParameterNames.nextElement();
            //得到这个请求中的mime文件类型数组
            String[] contentType = wrapper.getContentTypes(inputName);
            if(contentType != null && contentType.length != 0){       
                String[] fileNames = wrapper.getFileNames(inputName);
                if(fileNames != null && fileNames.length != 0){       
                    File[] files = wrapper.getFiles(inputName);           
                    for(int i=0;i                         String fileName=fileNames[i];
                        //文件扩展名
                        String fileExt = fileName.substring(fileName.lastIndexOf(".")+1).toLowerCase();
                        String fileName2 = fileName.substring(0,fileName.lastIndexOf(".")).toLowerCase();
                        File file = files[i];
                        SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
                        
                        // 补全完成存放路径
                        savePath = ServletActionContext.getServletContext().getRealPath(savePath);
                        // 创建物理存放路径
                        File fileSaveDir = new File(savePath);
                        if (!fileSaveDir.exists()) {
                            fileSaveDir.mkdirs();
                        }
                        String newFileName = fileName2 + df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileExt;
                        String realPath = savePath + File.separator + newFileName;
                        // 创建物理存放路径
                        try{
                            File uploadedFile = new File(savePath);
                            if (!uploadedFile.exists()) {
                                uploadedFile.mkdirs();
                            }
                            byte[] buffer = new byte[4096];
                            FileOutputStream fos = new FileOutputStream(realPath);
                            InputStream in = new FileInputStream(file);
                            int num = 0;
                            while((num = in.read(buffer))>0){
                                fos.write(buffer, 0, num);
                            }
                            in.close();
                            fos.close();    
                            //上传完成后删除临时文件
                            if(file.exists()){
                                file.delete();
                            }
                            return newFileName;
                        }catch(Exception e){
                            
                        }
                        
                    }
                }       
            }
        }
        return "";
    }

你可能感兴趣的:(java)