2 qfdong qfdong 于 2016.05.06 17:45 提问

保存商品信息失败?有时成功有时失败,怎么回事?啊 5C
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个回答

zs343961443
zs343961443   2016.05.06 17:52

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
OpenStack落地失败的原因及解决之道
在OpenStack领域工作了一段时间,目睹了一些情状,无论OpenStack的落地是成功还是失败,大多是源自非技术性的原因。如何成功地将OpenStack落地?我们把技术放在一边,首先解决思想认识上的问题。
一次RSA验证遇到的问题
rsa java pem publickey verify
maven下载包失败后无法重下解决方法
使用maven下载包时,经常由于网络问题导致下载失败,或者等得花儿都谢了,最后不得不取消掉下载。但这情况有时会导致下次想要重新下载这个包时,怎样都无法再次下载。很郁闷很奇怪的一个问题,其实解决方式很简单:把本地库中已下载的文件夹删掉即可重新下载。
Qt 使用qpixmap.load加载图片失败的问题解决方法
今天在使用QPoxmap.load加载图片时发现在我本机上可以用,但是编译成.exe放到实际环境上跑的时候却发现图片显示不出来,我的图片先是放到资源里面,后来建文件夹放在发布包里,改成绝对路径,各种尝试始终不行,后来查阅相关资料发现原来是缺少qjpeg.dll库,拷进去后问题解决,图片成功显示。折腾了两个小时,多次尝试才解决,记录下来,以待警示。...
使用Vue全家桶进行微信分享时出现的错误
 使用vue.js进行微信H5页面开发,开发过程中先进行oAuth身份验证。后使用JSSDK,进行微信分享。分享时会出现不调用自定义分享界面的情况,但是在刷新后可以正常显示,如下:正常进入分享:刷新后分享:由于Vue和微信调试环境的问题,在经过几次痛苦的尝试后,我们发现了一个现象,那就是,如果此时点击使用Safari打开,会出现:这是我们在使用oAuth认证时跳转的中间界面(从oauth回调的页面...
ajax请求后台有时走有时不走
ajax请求后台有时走有时不走,是因为没有将请求设置为同步方式,async:false,(默认为true即异步)。如果不想使用缓存可以将cache:false,例如:$.ajax({                       url : url,                      cache:false,                       async:false,  
## 关于RSA解密失败记录 ##
关于RSA解密失败记录在做公司项目时候,同事使用java加密一段数据,让我进行一下测试,是否能解密成功,但是研究一上午发无果,最后老大指出java默认解密和Android默认解密的Padding不同,特此记录,以免后续再犯! Android 默认是 :RSA/None/Nopadding Java 默认是:RSA/None/PKCS1Paddingpadding不同,Android端设置padd
百度地图sdk无法定位错误总结
首先保证你的代码是正确的。 1.确定你导入的sdk能够正常使用,你的app  key 是否添加 2.确定你的权限是给予 3.是否添加需要的service
自动化脚本执行失败原因分析
自动化脚本在执行完毕后,每个用例会分为通过或失败两种。对通过的用例,没什么可说的,这里主要谈下失败的用例。 失败的用例需要人去查看是否是脚本稳定性的问题,或是程序更新引起的问题。 对于脚本稳定性的问题又分为:配置环境引起的问题和非配置环境引起的问题。 对于配置环境引起的问题,那么在执行自动化测试前,需要人为地或自动地检查环境并配置好环境。这个如何配置,要预先知道,写成
sendmessage死锁问题
首先我要先简要的说明一个和这个话题有关系的消息处理机制:     在Window操作系统当中,窗口时属于所在Thread的也就是说 你这个窗口在那个Thread 当中Create 的那么你这个窗口就属于那个Thread。同时窗口的消息处理函数也都会在这个Thread 当中被执行的。(不要问为什么 Window 就是这么设计的 嘿嘿)     在讲死锁之前我们先把SendMessage的