/** 图片预览--将图片转成base64
* img/2022/4/27/1651036672603/狮子.jpg
* @param pathName 文件路径 img/2022/4/27/1651036672603/
* @param fileName 文件名称 狮子.jpg
* @return 图片文件的base64字符串
*/
public StringBuilder previewPic(String pathName,String fileName){
InputStream inputStream = null;
FTPClient ftpClient = initFtpClient();
ByteArrayOutputStream outputStream = null;
StringBuilder base64=new StringBuilder();
base64.append("data:image/jpeg;base64,");
try {
ftpClient.setControlEncoding("UTF-8");
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); // //设置文件以二进制的形式上传,防止文件内容乱码出现(必须设置 二进制类型)
ftpClient.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE); // 设置传输模式(二进制 必须设置)
ftpClient.changeWorkingDirectory(pathName);
ftpClient.enterLocalPassiveMode(); // 必须设置
FTPFile[] ftpFiles = ftpClient.listFiles();
for (FTPFile file : ftpFiles) {
if (fileName.equalsIgnoreCase(file.getName())) {
//检验文件是否存在
inputStream = ftpClient.retrieveFileStream(file.getName());
if (inputStream!=null){
// byte[] bytes = new byte[inputStream.available()];
byte[] bytes = new byte[1024*10];
outputStream = new ByteArrayOutputStream();
int len = 0;
while (-1 != (len = inputStream.read(bytes))) {
outputStream.write(bytes, 0, len);
}
bytes = outputStream.toByteArray();
Base64.Encoder encoder = Base64.getEncoder();
base64.append(encoder.encodeToString(bytes));
inputStream.close();
}
}
}
ftpClient.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
// log.error("关闭失败:" + e);
}
}
if (null != outputStream) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
// log.error("输出流关闭失败:" + e);
}
}
}
return base64;
}
记录一下,将ftp上面的图片转base64返回给前端展示
最新推荐文章于 2022-12-09 14:42:25 发布