关于Grails中FTP(apache)上传下载删除等功能的实现(三)

2014-11-24 10:21:41 · 作者: · 浏览: 1
gout();
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return success;
}

/**
* 通过FTP上面的文件的文件名查找到这个文件,然后返回客户端
* @param remote 路径如"/test/img/" 一定要以"/"开头并且以"/"结束
* @param fileName
* @return InputStream
*/
def download(String filePath, String fileName,OutputStream out) {
FTPClient client = connect()
changeDirecroty(filePath, client)
if(isExist(filePath,fileName)){
client.retrieveFile(fileName, out);
}
}
/**
* 附件删除
* @param remote 路径如"/test/img/" 一定要以"/"开头并且以"/"结束
* @param fileName
* @return
*/
def delete(String filePath, String fileName){
boolean success = false
FTPClient client = connect()
if(isExist(filePath, fileName)){
client.deleteFile(fileName)
success = true
}
return success
}

}


 


FtpUtils.groovy配置文件如下:


/**
* 配置上传到FTP服务器的属性
* server:FTP地址、
* user:用户名
* password:密码
* path:存放在FTP上的路径
*/
FtpProperty {
url = "191.0.4.17"
port = 21
username = "aa"
password = "aa"
path = "/"
}


接下来是Controller的代码


                        //上传代码 
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request
CommonsMultipartFile orginalFile = (CommonsMultipartFile) multiRequest.getFile("uploadfile")
InputStream input = orginalFile.getInputStream()
//saveFtpFileName为传到FTP上所需要存放的名字
if(ftpUtils.uploadFile("/测试新建文件夹/",saveFtpFileName, input)){
msg = "文件上传成功"
}else{
msg = "文件上传失败"
}


Controller中上传代码是用到了spring封装的上传方法