package com.qxueyou.scc.controller;
|
|
import java.util.ArrayList;
|
import java.util.Iterator;
|
import java.util.List;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.Logger;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
|
import com.qxueyou.scc.base.model.FileMeta;
|
import com.qxueyou.scc.base.model.Result;
|
import com.qxueyou.scc.teach.res.service.IFileService;
|
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
|
/**
|
* 文件上传控制器
|
*
|
* @author xiadehu
|
*/
|
@Api(tags="文件上传通用接口")
|
@Controller
|
@RequestMapping(value = "/base/file")
|
public class FileController {
|
|
private final Logger log = LogManager.getLogger("FileController");
|
|
@Autowired
|
IFileService fileService;
|
|
/**
|
* 通用上传接口
|
*
|
* @TODO : 目前缺少对 各模块文件个数、文件格式、文件大小的上传控制,统一增加在configFileModule表里面即可实现 1 图片; 2 文档 3 视频 4 音频
|
* @param response
|
* @return
|
*/
|
@ApiOperation(value="通用上传接口", notes="目前缺少对 各模块文件个数、文件格式、文件大小的上传控制,统一增加在configFileModule表里面即可实现 1 图片; 2 文档 3 视频 4 音频")
|
@RequestMapping(value = "/upload", headers = "content-type=multipart/*", method = RequestMethod.POST)
|
public @ResponseBody List<FileMeta> doUpload(MultipartHttpServletRequest request, HttpServletResponse response) {
|
|
// 2.循环取得文件
|
Iterator<String> itr = request.getFileNames();
|
MultipartFile mpf = null;
|
List<FileMeta> files = new ArrayList<FileMeta>(2);
|
FileMeta fileMeta = null;
|
|
while (itr.hasNext()) {
|
// 2.从request中取的下一个 MultipartFile
|
mpf = request.getFile(itr.next());
|
|
// 2.2 创建一个FileMeta
|
fileMeta = new FileMeta();
|
try {
|
Result uploadResult = fileService.doUpload(mpf.getInputStream(), mpf.getOriginalFilename());
|
|
fileMeta.setFileId(uploadResult.getDataT("fileId"));
|
fileMeta.setPath(uploadResult.getDataT("path"));
|
} catch (Exception e) {
|
String desp = e.getMessage();
|
desp = desp.length() > 120 ? desp.substring(0, 120) : desp;
|
log.error("上传模块解析出错:" + e);
|
}
|
|
fileMeta.setFileName(mpf.getOriginalFilename());
|
fileMeta.setFileSize(mpf.getSize() / 1024 + " Kb");
|
fileMeta.setFileType(mpf.getContentType());
|
|
// 2.4 add to files
|
files.add(fileMeta);
|
}
|
|
return files;
|
}
|
}
|