diff options
Diffstat (limited to 'src/main/java/com/mesasoft/cn/web/controller/FileMangerController.java')
| -rw-r--r-- | src/main/java/com/mesasoft/cn/web/controller/FileMangerController.java | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/src/main/java/com/mesasoft/cn/web/controller/FileMangerController.java b/src/main/java/com/mesasoft/cn/web/controller/FileMangerController.java new file mode 100644 index 0000000..ca7dbff --- /dev/null +++ b/src/main/java/com/mesasoft/cn/web/controller/FileMangerController.java @@ -0,0 +1,188 @@ +package com.mesasoft.cn.web.controller; + +import com.alibaba.fastjson.JSONObject; +import com.mesasoft.cn.annotation.AuthInterceptor; +import com.mesasoft.cn.enums.InterceptorLevel; +import com.mesasoft.cn.service.IFileManagerService; +import com.mesasoft.cn.util.ControllerUtils; +import com.zhazhapan.modules.constant.ValueConsts; +import com.zhazhapan.util.ArrayUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import springfox.documentation.annotations.ApiIgnore; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Map; + +/** + * <a href="https://github.com/joni2back/angular-filemanager/blob/master/API.md">see api doc</a> + * + * @author pantao + * @since 2018/1/29 + */ +@ApiIgnore +@RestController +@RequestMapping("/filemanager") +@AuthInterceptor(InterceptorLevel.SYSTEM) +public class FileMangerController { + + private final IFileManagerService fileManagerService; + + private final JSONObject jsonObject; + + @Autowired + public FileMangerController(IFileManagerService fileManagerService, JSONObject jsonObject) { + this.fileManagerService = fileManagerService; + this.jsonObject = jsonObject; + } + + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/multidownload", method = RequestMethod.GET) + public void multiDownload(HttpServletResponse response, String[] items, String toFilename) throws IOException { + ControllerUtils.setResponseFileName(response, toFilename); + fileManagerService.multiDownload(response, items, toFilename); + } + + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/download", method = RequestMethod.GET) + public void download(HttpServletResponse response, String path) throws IOException { + ControllerUtils.loadResource(response, path, ValueConsts.TRUE); + } + public static String getEncoding(String str) { + String encode = "GB2312"; + String finecode = ""; + try { + if (str.equals(new String(str.getBytes(encode), encode))) { + finecode = encode; + } + } catch (Exception exception) { + } + encode = "ISO-8859-1"; + try { + if (str.equals(new String(str.getBytes(encode), encode))) { + finecode = encode; + } + } catch (Exception exception1) { + } + encode = "GBK"; + try { + if (str.equals(new String(str.getBytes(encode), encode))) { + finecode = encode; + } + } catch (Exception exception1) { + } + encode = "UTF-8"; + try { + if (str.equals(new String(str.getBytes(encode), encode))) { + finecode = encode; + } + } catch (Exception exception2) { + } + encode = "GBK"; + try { + if (str.equals(new String(str.getBytes(encode), encode))) { + finecode = encode; + } + } catch (Exception exception3) { + } + return finecode; + } + /** + * 暂时没有找到更好的解决方案 + * + * @param destination 目的 + * + * @return 响应结果 + */ + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/upload", method = RequestMethod.POST) + public String upload(String destination, MultipartHttpServletRequest request) { + Map<String, MultipartFile> fileMap = request.getFileMap(); + MultipartFile[] files = ArrayUtils.mapToArray(fileMap, MultipartFile.class); + jsonObject.put("result", fileManagerService.upload(destination, files)); + return jsonObject.toJSONString(); + } + + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/extract", method = RequestMethod.POST) + public String extract(@RequestBody JSONObject json) { + jsonObject.put("result", fileManagerService.extract(json)); + return jsonObject.toJSONString(); + } + + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/compress", method = RequestMethod.POST) + public String compress(@RequestBody JSONObject json) { + jsonObject.put("result", fileManagerService.compress(json)); + return jsonObject.toJSONString(); + } + + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/permission", method = RequestMethod.POST) + public String setPermission(@RequestBody JSONObject json) { + jsonObject.put("result", fileManagerService.setPermission(json)); + return jsonObject.toJSONString(); + } + + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/folder", method = RequestMethod.POST) + public String createFolder(@RequestBody JSONObject json) { + jsonObject.put("result", fileManagerService.createFolder(json)); + return jsonObject.toJSONString(); + } + + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/content", method = RequestMethod.POST) + public String getContent(@RequestBody JSONObject json) { + jsonObject.put("result", fileManagerService.getContent(json)); + return jsonObject.toJSONString(); + } + + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/edit", method = RequestMethod.POST) + public String edit(@RequestBody JSONObject json) { + jsonObject.put("result", fileManagerService.edit(json)); + return jsonObject.toJSONString(); + } + + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/remove", method = RequestMethod.POST) + public String remove(@RequestBody JSONObject json) { + jsonObject.put("result", fileManagerService.remove(json)); + return jsonObject.toJSONString(); + } + + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/copy", method = RequestMethod.POST) + public String copy(@RequestBody JSONObject json) { + jsonObject.put("result", fileManagerService.copy(json)); + return jsonObject.toJSONString(); + } + + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/move", method = RequestMethod.POST) + public String move(@RequestBody JSONObject json) { + jsonObject.put("result", fileManagerService.move(json)); + return jsonObject.toJSONString(); + } + + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/rename", method = RequestMethod.POST) + public String rename(@RequestBody JSONObject json) { + jsonObject.put("result", fileManagerService.rename(json)); + return jsonObject.toJSONString(); + } + + @AuthInterceptor(InterceptorLevel.SYSTEM) + @RequestMapping(value = "/list", method = RequestMethod.POST) + public String list(@RequestBody JSONObject json) { + jsonObject.put("result", fileManagerService.list(json)); + return jsonObject.toJSONString(); + } +} |
