java上传

public ResponseEnvelope UploadFile(RequestEnvelope reqEnv,HttpServletRequest request) throws Exception {
        //声明响应信封
        ResponseEnvelope resEnv = new ResponseEnvelope();
        //默认设置应用代码为-1失败
        resEnv.getHeader().setAppCode(-1);
        IFile file = (IFile) reqEnv.getBody().getParameter("file");
        //获取本应用数据库持久化对象,要求数据源名与应用名称一致,并数据源采用小写
        DBPersistenceManager dbpm = getPM("XzqlApp");
        String foreignID = (String) reqEnv.getBody().getParameter("foreignID");
        String materialname = (String) reqEnv.getBody().getParameter("materialname");
        if (file.getSize() > 0) {
            String uuid = UUIDUtil.getUUID();
            Date d = new Date();  
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");  
            String dateNowStr = sdf.format(d);  
            String filePath = request.getSession().getServletContext().getRealPath("/")+"uploadFile/netPlus/"+dateNowStr;
            String Path = "uploadFile/netPlus/"+dateNowStr+"\\"+uuid+"."+file.getFileExt();
            //文件目录不存在,则创建
            if(!new File(filePath).exists())
            {
                new File(filePath).mkdirs();
            } 
            String fileName=filePath+"\\"+uuid+"."+file.getFileExt();
            String Name=uuid+"."+file.getFileExt();
            try {
                ByteArrayInputStream stream = file.getContentStream();
                FileOutputStream out=new FileOutputStream(fileName);
                byte[] filebyte=new byte[1024*20];
                int i=0;
                while(( i=stream.read(filebyte))>0){
                    out.write(filebyte,0,i);
                }
                out.close();
                out=null;
                stream.close();
                stream=null;
                //默认设置应用代码为0成功
                resEnv.getHeader().setAppCode(0);
                resEnv.getBody().addParameter("filename", dateNowStr+"/"+uuid+"."+file.getFileExt());
             ///        
            StringBuffer sb = new StringBuffer();
            sb.append("insert into mymaterial_info(idseq,foreignid,filename,filepath,materialname,");
            sb.append("filesize,fileformat,flag,content) values(?,?,?,?,?,?,?,?,empty_blob())");
            Object[] param = new Object[8];
            String idseq = UUIDUtil.getUUID();
            param[0] = idseq;//id
            param[1] = foreignID;//??
            param[2] = Name;//文件名
            param[3] = Path;//文件路径
            param[4] = materialname;//材料名称
            double size = file.getSize();
            if(size!=0){
                size = size/1024;
            }
            param[5] = size;//文件大小,单位千字节
            param[6] = file.getFileExt();//扩展名
            param[7] = "0";//有效
                dbpm.executeUpdate(sb.toString(), param);
                Map<String, String> pks = new HashMap<String, String>();
                pks.put("idseq", idseq);
                //默认设置应用代码为0成功
                resEnv.getHeader().setAppCode(0);
            } catch (Exception e) {
                e.printStackTrace();
                throw e;
            } finally {
                //关闭持久化对象
                dbpm.close();
            }
        }
        return resEnv;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值