打包zip图片上传发帖

    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);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值