html是不能直接读取ftp服务器资源的(可以读取,但是会暴漏服务器的用户名密码,不建议这样做)所以我们需要后台做一下中转。
首先java读取ftp图片并转换为输入流。service代码如下:
//获取ftp链接
FTPClient ftp = FtpClientUtils.getConnectionFTP();
try {
ftp.setControlEncoding(“UTF-8”);
//图片存放路径
String path = FtpClientUtils.charSetChange(url.substring(0, url.lastIndexOf("/")));
//切换工作目录
boolean change = ftp.changeWorkingDirectory(path);
//切换失败,目录不存在
if(!change){
throw new BusinessException(“获取图片失败,图片地址错误!”);
}
//从ftp获取输入流
String fileName = FtpClientUtils.charSetChange(url.substring(url.lastIndexOf("/")+1));
ftp.enterLocalPassiveMode();
InputStream ins = ftp.retrieveFileStream(fileName);
return ins;
} catch (IOException e) {
e.printStackTrace();
throw new BusinessException(“上传失败,切换工作目录失败!”);
}
controller