如何使用java代码删除服务器上的资源
1. 创建删除资源工具类
package com.jxue.portal.utils;
import lombok.experimental.UtilityClass;
import java.io.File;
@UtilityClass
public class DelServerFileUtils {
/**
* 删除服务器上的文件
*
* @param fileUrl 文件URL
* @param serverUrl 公网路径
* @param serverAddress 服务器存储地址
*/
public static void delServerFile(String fileUrl, String serverUrl, String serverAddress) {
//用图片url换取真实地址
fileUrl = fileUrl.replace(serverUrl, serverAddress);
File file = new File(fileUrl);
boolean flag = false;
if (file.exists()) {
flag = file.isFile() && file.delete();
}
if (!flag) {
throw new PortalException(StatusCode.DEL_FAIL);
}
}
}
2. 在相应的地方使用即可
/**
* 删除当前轮播图
*
* @param swiperId 轮播图ID
*/
@Transactional
public void delCurrentSwiperBySwiperId(Long swiperId) {
Swiper currentSwiper = swiperMapper.selectByPrimaryKey(swiperId);
String swiperImgUrl = currentSwiper.getSwiperImgUrl();
if (!StringUtils.isEmpty(swiperImgUrl)) {
//删除服务器上的图片
DelServerFileUtils.delServerFile(swiperImgUrl, fileConfig.getImgServerAddress(), fileConfig.getImageContent());
}
int flag = swiperMapper.deleteByPrimaryKey(swiperId);
if (flag <= 0) {
throw new PortalException(StatusCode.DEL_FAIL);
}
}