前端部分
<input id="upload" style="display:none" type="file" @change="getFile($event)" /> getFile (event) { let self = this console.log(event.target.files) if (event.target.files[0].name.indexOf(this.upFileType) > -1) { let file = event.target.files[0] let formData = new FormData() formData.append('project', this.upProject) formData.append('moduleId', this.upModuleId) formData.append('module', this.upModule) formData.append('fileInfo', file) formData.append('initFileType', this.upFileType) commData .uploadCon(formData) .then(data => { console.log(data) if (data.success) { // 这边需要清空,不然重复文件不会继续上传 event.srcElement.value = '' self.$message({ type: 'success', message: data.msg }) if (this.upProject === 'init') { self.getInitProData(1, this.initProPageInfo.pageSize) } else { self.getOtherProData(1, this.otherProPageInfo.pageSize) } } else { self.$message({ type: 'error', message: data.msg }) } }) .catch(e => { self.$message.error('服务端出错') console.error(e) }) } else { this.$message({ type: 'warning', message: '上传文件和所选格式不一致!' }) } }
请求头部
const remoteStartByFile = postparam => { return new Promise((resolve, reject) => { axios .post('/comm/uploadCon', postparam, { headers: { 'Content-Type': 'multipart/form-data' } }) .then(response => { resolve(response) }) .catch(e => { reject(e) }) }) }
后台部分
@RequestMapping(value = "/uploadCon") @ResponseBody public TResult<String> uploadCon(HttpServletRequest request,HttpServletResponse response, @RequestParam(value = "fileInfo", required = false) MultipartFile file, @RequestParam(value = "project", required = false) String project, @RequestParam(value = "module", required = false) String module, @RequestParam(value = "moduleId", required = false) String moduleId, @RequestParam(value = "initFileType", required = false) String initFileType) throws Exception { TResult<String> result = new TResult<String>(); try { projectConfigService.uploadInitCon(file, project, module, moduleId, initFileType); result.setSuccess(true); result.setMsg("上传成功"); } catch (Exception e) { logger.error(e.getMessage()); result.setSuccess(false); result.setMsg("上传失败"); } return result; }
@Transactional public void uploadInitCon(MultipartFile file, String project,String module, String moduleId, String fileType) throws IOException { // 如果是初始化项目,那么将删除所有的 if ("init".equals(project)) { ProjectConfig delconfig = new ProjectConfig(); delconfig.setModule(module); delconfig.setFileType(fileType); iProjectConfigDao.delProjectConfig(delconfig); } else { ProjectConfig delconfig = new ProjectConfig(); delconfig.setModuleId(moduleId); delconfig.setProject(project); delconfig.setFileType(fileType); iProjectConfigDao.delProjectConfig(delconfig); } logger.info("删除配置文件完毕,project: " + project + ",module:" + module + ",fileType:" + fileType); InputStream in = file.getInputStream(); InputStreamReader read = new InputStreamReader(in, "utf-8");//考虑到编码格式 BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; int order = 1; while((lineTxt = bufferedReader.readLine()) != null){ if (StringUtils.isBlank(lineTxt) || lineTxt.startsWith("#")) { continue; } String arr[] = lineTxt.split("="); ProjectConfig config = new ProjectConfig(); config.setProject(project); config.setModule(module); config.setModuleId(moduleId); config.setFileType(fileType); config.setParm(arr[0]); if (arr.length > 1 && StringUtils.isNotBlank(arr[1])) { config.setParmValue(arr[1]); } config.setUnicode("0"); // 不需要unicode编码 config.setAlterFlag("0"); // 客户化标识 config.setOrderby(order++ + ""); config.setId(order++ + ""); // 先删除? // ProjectConfig maxData = iProjectConfigDao.getMaxData(project, moduleId, fileType); // config.setId(maxData.getId()); // config.setParmDesc(parmDesc); System.out.println(lineTxt); iProjectConfigDao.saveConfig(config); } in.close(); }