package com.ibeetl.admin.core.web;
|
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.io.OutputStream;
|
import java.net.URLEncoder;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.LogFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import com.ibeetl.admin.core.entity.CoreOrg;
|
import com.ibeetl.admin.core.entity.CoreUser;
|
import com.ibeetl.admin.core.file.FileItem;
|
import com.ibeetl.admin.core.file.FileService;
|
import com.ibeetl.admin.core.service.CorePlatformService;
|
import com.ibeetl.admin.core.util.FileUtil;
|
|
@Controller
|
public class FileSystemContorller {
|
private final Log log = LogFactory.getLog(this.getClass());
|
|
@Autowired
|
CorePlatformService platformService ;
|
|
private static final String MODEL = "/core/file";
|
|
/*附件类操作*/
|
@PostMapping(MODEL + "/uploadAttachment.json")
|
@ResponseBody
|
public JsonResult uploadFile(@RequestParam("file") MultipartFile file,String batchFileUUID,String bizType,String bizId) throws IOException {
|
if(file.isEmpty()) {
|
return JsonResult.fail();
|
}
|
CoreUser user = platformService.getCurrentUser();
|
CoreOrg org = platformService.getCurrentOrg();
|
FileItem fileItem = fileService.createFileItem(file.getOriginalFilename(), bizType, bizId, user.getId(), org.getId(), batchFileUUID,null);
|
OutputStream os = fileItem.openOutpuStream();
|
FileUtil.copy(file.getInputStream(), os);
|
return JsonResult.success(fileItem);
|
}
|
|
@PostMapping(MODEL + "/deleteAttachment.json")
|
@ResponseBody
|
public JsonResult deleteFile(Long fileId,String batchFileUUID ) throws IOException {
|
fileService.removeFile(fileId, batchFileUUID);
|
return JsonResult.success();
|
}
|
|
@GetMapping(MODEL + "/download/{fileId}/{batchFileUUID}/{name}")
|
public ModelAndView download(HttpServletResponse response,@PathVariable Long fileId,@PathVariable String batchFileUUID ) throws IOException {
|
FileItem item = fileService.getFileItemById(fileId,batchFileUUID);
|
response.setHeader("Content-Disposition", "attachment; filename="+URLEncoder.encode(item.getName(),"UTF-8"));
|
item.copy(response.getOutputStream());
|
return null;
|
}
|
|
|
/*execl 导入导出*/
|
|
@Autowired
|
FileService fileService;
|
@GetMapping(MODEL + "/get.do")
|
public ModelAndView index(HttpServletResponse response,String id) throws IOException {
|
String path = id;
|
response.setContentType("text/html; charset = UTF-8");
|
FileItem fileItem = fileService.loadFileItemByPath(path);
|
response.setHeader("Content-Disposition", "attachment; filename="+java.net.URLEncoder.encode(fileItem.getName(), "UTF-8"));
|
fileItem.copy(response.getOutputStream());
|
if(fileItem.isTemp()) {
|
fileItem.delete();
|
}
|
return null;
|
}
|
|
@GetMapping(MODEL + "/downloadTemplate.do")
|
public ModelAndView dowloadTemplate(HttpServletResponse response,String path) throws IOException {
|
response.setContentType("text/html; charset = UTF-8");
|
int start1 = path.lastIndexOf("\\");
|
int start2 = path.lastIndexOf("/");
|
if(start2>start1) {
|
start1 = start2;
|
}
|
String file = path.substring(start1+1);
|
response.setHeader("Content-Disposition", "attachment; filename="+java.net.URLEncoder.encode(file,"UTF-8"));
|
InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("excelTemplates/"+path);
|
FileUtil.copy(input, response.getOutputStream());
|
return null;
|
}
|
|
@GetMapping(MODEL + "/simpleUpload.do")
|
public ModelAndView simpleUploadPage(String uploadUrl,String templatePath,String fileType) throws IOException {
|
ModelAndView view = new ModelAndView("/common/simpleUpload.html");
|
view.addObject("uploadUrl",uploadUrl);
|
view.addObject("templatePath",templatePath);
|
view.addObject("fileType",fileType);
|
|
return view;
|
}
|
}
|