骐源 2016-05-06 09:45 采纳率: 0%
浏览 1144
已结题

保存商品信息失败?有时成功有时失败,怎么回事?啊

public void saveGood() {
        boolean temp = false;
        try {

            Dto dto = paraDto;
            StringUtil.xprint("param==" + paraDto);
            //处理编号
            if(optype.equals("add_good")){
               String good_id = UniqueID.getUniqueID(8, 0);
               setGood_id(good_id);
               dto.put("good_id", good_id);
            }

            StringUtil.xprint("开始上传文件==");
            FileUtils fileUtils = new FileUtils();
            String imageFolder = ServletActionContext.getServletContext().getRealPath("imageFolder");
            //String classPath = UploadGoodAction.class.getResource("/").getPath();
            //String imageFolder = CTUtils.getWebRootPaht(classPath, 1);

            List<File> items = getUploadGood();
             if(CTUtils.isNotEmpty(items)){
                 String fileName = null;
                 for (int i = 0; i < items.size(); i++) {
                    fileName = uploadGoodFileName.get(i);//真实文件名称
                    //生成一级文件夹
                    fileUtils.createFolder(imageFolder);
                    StringUtil.xprint("创建图片一级文件夹:" + imageFolder);
                    String temp_path = imageFolder + "/" + CTUtils.getCurDateNoSplit();

                    fileUtils.createFolder(temp_path);
                    StringUtil.xprint("创建图片二级文件夹:" + temp_path);

                    String file_prex = fileUtils.GetExt(fileName);
                    String filename = getGood_id()+"_"+(i+1)+ file_prex;
                    String file_path = StringUtil.getFilePath(temp_path, "imageFolder");

                    temp_path = temp_path + "/" + filename;
                    System.out.println("file_path=" + file_path);
                    System.out.println("temp_path=" + temp_path);

                    //输出文件
                    FileOutputStream fos = new FileOutputStream(temp_path);
                    FileInputStream fis = new FileInputStream(items.get(i));
                    byte[] buffer = new byte[1024];
                    int len = 0;
                    while ((len = fis.read(buffer)) > 0) {
                        fos.write(buffer, 0, len);
                    }

                    //处理文件名称
                    dto.put("good_pic"+(i+1), file_path + "/" + filename);

                 }
             }
             //保存商品
             temp = goodInfoService.operGoodInfo(dto);

        } catch (Exception e) {
            temp = false;
            e.printStackTrace();
        } finally {
            if(temp){
               this.renderHtml("<script>alert('保存商品信息成功!');window.parent.frames['foodTable'].location.href='good!getGoodInfo.ct';</script>");
            }else{
               this.renderHtml("<script>alert('保存商品信息失败!');window.parent.frames['foodTable'].location.href='good!getGoodInfo.ct';</script>");
            }
        }


高人帮助看下,是怎么回事?
保存商品信息失败?有时成功有时失败,怎么回事?啊
重启下tomcat就成功了,过段时间又失败!

  • 写回答

1条回答 默认 最新

  • 人称帅哥 2016-05-06 09:52
    关注

    用完 FileOutputStream fos = new FileOutputStream(temp_path);
    FileInputStream fis = new FileInputStream(items.get(i));
    关一下流。fos.close() fis.close()试一下

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。