老师,这个方法我觉得设计的不合理! uploaded不应该默认为true. 成功则赋值true才合理.
来源:8-7 后台商品图片的springmvc上传与富文本上传ftp服务器功能开发2
狐狸别跑
2017-05-27
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;
}
2回答
-
Geely
2017-05-27
hi 同学,我认为你说的非常对~~哈哈给予赞美~~~是的~是这样的,这块是有瑕疵滴,希望在你的项目代码里改掉哟~~
另外我再给你提一个场景~~嘻嘻,上传多个文件的时候,在返回值上要处理上A成功,B失败这样,才是最完美的哟。
032017-09-17 -
Blegend
2017-05-27
同学,这个地方我觉得确实有点小瑕疵,但是我觉得一开始设置成true到是没有问题,因为只要执行到return肯定是成功了的,这种情况只需要错误的时候设置成false就行了,否则如果你要是设置成false那么每次成功都要设置成true对于服务器来说不是很麻烦吗?毕竟没有意外总是成功的。----------但是问题来了,我说的瑕疵应该是return应该放到finally里面,不然的话catch到异常设置成false也没有return,,,我觉得这里有点小问题,老师当时应该疏忽了。
012017-05-29
相似问题