package top.gkh0305.uploads.controller;
import com.alibaba.fastjson.JSON;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@Controller
@RestController
public class fileMoreController {
@RequestMapping(value = "/ueditor/initController")
public void initController(MultipartFile upfile, HttpServletRequest request, HttpServletResponse response) {
try {
request.setCharacterEncoding("UTF-8");
response.setHeader("Content-Type", "text/html");
String value = request.getParameter("action");
// 文件上传的路径
String rootPath = "/opt/homebrew/Cellar/nginx/1.19.8/html/pic/";
String result = null;
if ("config".equals(value)) { // 读取配置文件,将配置文件数据以json格式返回
String configPath = "/config.json";// 配置文件路径, 相对于classpath
InputStream inStream = fileMoreController.class.getResourceAsStream(configPath);
StringBuilder builder = new StringBuilder();
try {
InputStreamReader reader = new InputStreamReader(inStream, "UTF-8");
BufferedReader bfReader = new BufferedReader(reader);
String tmpContent = null;
while ((tmpContent = bfReader.readLine()) != null) {
builder.append(tmpContent);
}
bfReader.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// 过滤输入字符串, 剔除多行注释以及替换掉反斜杠
result = JSON.toJSONString(builder.toString().replaceAll("/\\*[\\s\\S]*?\\*/", "").replaceAll(" ", ""));
System.out.println("result:" + result);
} else if ("uploadimage".equals(value)) {// 上传文件
String originalFilename = upfile.getOriginalFilename();
String type = originalFilename.substring(originalFilename.indexOf("."), originalFilename.length());
long size = upfile.getSize();
SimpleDateFormat middlePath = new SimpleDateFormat("yyyyMMdd");
String fileFullName = rootPath + originalFilename;
// 图片访问地址(tomcat服务器)
String url = "http://localhost:8090/pic/" + originalFilename;
try {
File file = new File(fileFullName);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
upfile.transferTo(file);
Map<String, Object> map = new HashMap<String, Object>();
map.put("state", "SUCCESS");
map.put("original", originalFilename);
map.put("size", size);
map.put("title", originalFilename);
map.put("type", type);
map.put("url", url);
result = JSON.toJSONString(map);
} catch (Exception e) {
e.printStackTrace();
}
}
PrintWriter writer = response.getWriter();
writer.write(result);
writer.flush();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}