1、通用封装思想
统一结果返回类
public classTaotaoResult {
// 响应状态码
private Integer status;
// 响应消息 200 成功 400 失败 500异常
private String msg;
// 响应中的数据
private Object data;
public TaotaoResult() {
}
// 成功 传入数据 调用下面的构造方法
public static TaotaoResult build(Object data){
return new TaotaoResult(data);
}
// 成功 传入数据
public TaotaoResult(Object data) {
this.status = 200;
this.msg = "OK";
this.data = data;
}
// 有状态码 有信息 没有数据
public static TaotaoResult build(Integer status,String msg) {
return new TaotaoResult(status,msg, null);
}
// 三样都有
public static TaotaoResult build(Integer status,String msg, Object data) {
return new TaotaoResult(status,msg, data);
}
public TaotaoResult(Integer status, String msg, Object data) {
this.status = status;
this.msg = msg;
this.data = data;
}
}
图片上传:
@Test
public void testFtp() throws Exception {
//1、连接ftp服务器
FTPClient ftpClient = new FTPClient();
ftpClient.connect("192.168.25.133", 21);
//2、登录ftp服务器
ftpClient.login("ftpuser", "ftpuser");
//3、读取本地文件
FileInputStream inputStream = new FileInputStream(new File("D:\\Documents\\Pictures\\images\\2010062119283578.jpg"));
//4、上传文件
//1)指定上传目录
ftpClient.changeWorkingDirectory("/home/ftpuser/www/images");
//2)指定文件类型
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
//第一个参数:文件在远程服务器的名称
//第二个参数:文件流
ftpClient.storeFile("hello.jpg", inputStream);
S1
@RequestMapping("/pic/upload")
@ResponseBody
public String uploadPicture(MultipartFile uploadFile) {
Map result = pictureService.uploadPicture(uploadFile);
String json = JsonUtils.objectToJson(result);
return json;
}
S2 service
加载配置文件的值
#FTP的相关配置
FTP_ADDRESS=192.168.238.129
FTP_PORT=21
FTP_USERNAME=ftpuser
利用spring 读取配置文件了的值
@Value("${FTP_ADDRESS}")
private String FTP_ADDRESS;
@Value("${FTP_PORT}")
private int FTP_PORT;
@Value("${FTP_USERNAME}")
修改-dao.xml文件
<context:property-placeholder location="classpath:resource/*.properties" />
读取*.properties
@Override
public Map uploadPicture(MultipartFile uploadFile) {
Map resultMap = new HashMap<>();
// 修改文件名
String oldName = uploadFile.getOriginalFilename();
String newName = IDUtils.genImageName() + oldName.substring(oldName.lastIndexOf("."));
// 上传文件到ftp服务器
String filePath = new DateTime().toString("/yyyy/MM/dd");
try {
boolean uploadResult = FtpUtil.uploadFile(FTP_ADDRESS, FTP_PORT, FTP_USERNAME, FTP_PASSWORD,
FTP_BASEPATH, filePath, newName, uploadFile.getInputStream());
if(!uploadResult) {
// error 成功是0 失败是1
resultMap.put("error", 1);
resultMap.put("message", "上传失败");
return resultMap;
}
// 上传成功
resultMap.put("error", 0);
resultMap.put("url", IMAGE_BASE_URL + filePath + "/" + newName);
return resultMap;
} catch (IOException e) {
e.printStackTrace();
resultMap.put("error", 1);
resultMap.put("message", "上传出现异常");
return resultMap;
}
上传 //成功时
{
"error" : 0,
"url" : "http://www.example.com/path/to/file.ext"
}
//失败时
{
"error" : 1,
"message" : "错误信息"
}根据结果 定义一个bean
private int error;
private String url;
private String message;
// 成功时调用的方法
public static PictureResult ok(Stringurl) {
return new PictureResult(0, url, null);
}
// 失败时调用的方法
public static PictureResult error(String message){
return new PictureResult(1, null, message);
}
public PictureResult(int error, String url, String message) {
this.error = error;
this.url = url;
this.message = message;
}
----- 8月8日 富文本编辑器提交 以及 一次传多个图片实现 -----------