打包zip图片上传发帖

来源:互联网 发布:可牛闪图软件下载 编辑:程序博客网 时间:2024/06/08 19:59

    com.chinaren.common.UploadMultipart upload = new com.chinaren.common.UploadMultipart();
    upload.UploadMultipart(request);

    String realFilePath = upload.getRealFilePath();
    String realFile = upload.getRealFile();
    int uploadFileSuffixIdx = realFile.lastIndexOf(".");
    if(uploadFileSuffixIdx == -1){
        %><script>alert('请上传zip文件');history.go(-1);</script><%
        return;
    }
    String uploadFileSuffix = realFile.substring(uploadFileSuffixIdx+1);
    if(!uploadFileSuffix.toLowerCase().equals("zip")){
        %><script>alert('请上传zip文件');history.go(-1);</script><%
        return;
    }
    String realFullFile = realFilePath+realFile;
    Vector zipedFile = new Vector();
    ZipFile zf = null;
    try {
            zf = new ZipFile(realFullFile);
        if(zf.size() > 30){
            %><script>alert('上传图片不能超过30张');history.go(-1);</script><%
            return;
        }
        int count = 0;
            for (Enumeration entries = zf.entries(); entries.hasMoreElements();) {
            ZipEntry entry = (ZipEntry)entries.nextElement();        
                    String entryName = entry.getName();
            int suffixIdx = entryName.lastIndexOf(".");
            if(suffixIdx == -1) continue;
            String suffix = entryName.substring(suffixIdx+1);    
            if(!suffix.toLowerCase().equals("jpg") && !suffix.toLowerCase().equals("jpeg") && !suffix.toLowerCase().equals("gif")) continue;
            String newFileName = realFile.substring(0,uploadFileSuffixIdx)+"_"+(++count)+"."+suffix;
            String newFullFileName = realFilePath + newFileName;
            InputStream buf = zf.getInputStream(entry);
            if(!createFile(newFullFileName,buf)){
                throw new Exception("upload_pic_zip.jsp -->unzip "+entryName+" of "+realFile+" fail!");
            }
            zipedFile.add(newFileName);
            setWaterMark(newFullFileName,boardid);
            }
        } catch (Exception e) {
        delFiles(zipedFile);
        %><script>alert('解压文件失败');history.go(-1);</script><%
        return;
    }finally{
        if(zf != null) try{zf.close();}catch(Exception e){}
        delFile(realFullFile);
    }

原创粉丝点击