请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,这个方法我觉得设计的不合理! uploaded不应该默认为true. 成功则赋值true才合理.

  

  private boolean uploadFile(String remotePath,List<File> fileList) throws IOException {

        boolean uploaded = true;

        FileInputStream fis = null;

        //连接FTP服务器

        if(connectServer(this.ip,this.port,this.user,this.pwd)){

            try {

                ftpClient.changeWorkingDirectory(remotePath);

                ftpClient.setBufferSize(1024);

                ftpClient.setControlEncoding("UTF-8");

                ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);

                ftpClient.enterLocalPassiveMode();

                for(File fileItem : fileList){

                    fis = new FileInputStream(fileItem);

                    ftpClient.storeFile(fileItem.getName(),fis);

                }


            } catch (IOException e) {

                logger.error("上传文件异常",e);

                uploaded = false;

                e.printStackTrace();

            } finally {

                fis.close();

                ftpClient.disconnect();

            }

        }

        return uploaded;

    }


正在回答 回答被采纳积分+3

2回答

Geely 2017-05-27 22:20:41

hi 同学,我认为你说的非常对~~哈哈给予赞美~~~是的~是这样的,这块是有瑕疵滴,希望在你的项目代码里改掉哟~~

另外我再给你提一个场景~~嘻嘻,上传多个文件的时候,在返回值上要处理上A成功,B失败这样,才是最完美的哟。

0 回复 有任何疑惑可以回复我~
  • 提问者 狐狸别跑 #1
    老师,这个场景确实是没考虑到。赞一个。
    回复 有任何疑惑可以回复我~ 2017-05-29 22:59:54
  • 老师,你说的瑕疵是不是在finally块的最后加一行:return uploaded; 就行了
    回复 有任何疑惑可以回复我~ 2017-09-15 21:08:55
  • 这个要看逻辑如何来定,是否允许一次性上传多个文件。还是上传多个,例如第一个成功,也算成功,还是给予前端提示,哪个上传成功,需要再次封装。
    回复 有任何疑惑可以回复我~ 2017-09-17 20:51:19
Blegend 2017-05-27 19:41:39

同学,这个地方我觉得确实有点小瑕疵,但是我觉得一开始设置成true到是没有问题,因为只要执行到return肯定是成功了的,这种情况只需要错误的时候设置成false就行了,否则如果你要是设置成false那么每次成功都要设置成true对于服务器来说不是很麻烦吗?毕竟没有意外总是成功的。----------但是问题来了,我说的瑕疵应该是return应该放到finally里面,不然的话catch到异常设置成false也没有return,,,我觉得这里有点小问题,老师当时应该疏忽了。

0 回复 有任何疑惑可以回复我~
  • 提问者 狐狸别跑 #1
    问题是如果FTP连接的时候报错。即if进不去 return也会返回的。
    
    
    回复 有任何疑惑可以回复我~ 2017-05-29 22:57:57
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信