SpringBoot实现表单数据与文件同时上传
一、 前端表单文件重点:设置enctype="multipart/form-data"<formid="saveAgent" action="saveAgent" method="POST" enctype="multipart/form-data">代理人名称:&
·
一、 前端表单文件
重点:设置enctype="multipart/form-data"
<form id="saveAgent" action="saveAgent" method="POST" enctype="multipart/form-data">
代理人名称:<input type="text" name="agentName" />
代理人手机号:<input type="text" name="agentPhone" />
营业执照:<input type="file" name="blFile" />
<input type="submit" value="提交" id="submitBnt">
</form>
二、后端接收实体类
package org.cm.channelmanage.entity;
import org.springframework.web.multipart.MultipartFile;
import java.io.Serializable;
import java.util.Date;
public class AgentInfo implements Serializable {
private Integer id;
private String agentName;
private String agentPhone;
private MultipartFile blFile;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getAgentName() {
return agentName;
}
public void setAgentName(String agentName) {
this.agentName = agentName == null ? null : agentName.trim();
}
public String getAgentPhone() {
return agentPhone;
}
public void setAgentPhone(String agentPhone) {
this.agentPhone = agentPhone == null ? null : agentPhone.trim();
}
public MultipartFile getBlFile() {
return blFile;
}
public void setBlFile(MultipartFile blFile) {
this.blFile = blFile;
}
}
三、后端控制类
package org.cm.channelmanage.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.cm.channelmanage.entity.AgentInfo;
import org.cm.channelmanage.result.ResultBundle;
import org.cm.channelmanage.service.AgentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@Api(value = "一级代理控制类")
@RestController
public class AgentInfoController {
@Autowired
private AgentService agentService;
@ApiOperation(value = "添加一级代理接口",notes = "添加一级代理接口",response = ResultBundle.class)
@PostMapping("saveAgent")
public ResultBundle<Object> saveAgent(AgentInfo agentInfo){
return agentService.saveAgent(agentInfo);
}
}
四、后端业务类
package org.cm.channelmanage.service.impl;
import org.cm.channelmanage.common.constant.ResCode;
import org.cm.channelmanage.dao.xl.AgentInfoMapper;
import org.cm.channelmanage.entity.AgentInfo;
import org.cm.channelmanage.result.ResultBundle;
import org.cm.channelmanage.service.AgentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ClassUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
@Service
public class AgentServiceImpl implements AgentService {
@Autowired
private AgentInfoMapper agentInfoMapper;
@Override
@Transactional
public ResultBundle<Object> saveAgent(AgentInfo agentInfo) throws Exception{
if(agentInfo==null){
return ResultBundle.failure(ResCode.FALSE_DATA,"一级代理信息不能为空");
}
MultipartFile blFile = agentInfo.getBlFile();
if(!blFile.isEmpty()){
String oldFileName = blFile.getOriginalFilename();
String path = ClassUtils.getDefaultClassLoader().getResource("").getPath()+"static/upload/bl";
String randomStr = UUID.randomUUID().toString();
String newFileName = randomStr + oldFileName.substring(oldFileName.lastIndexOf("."));
File file = new File(path,newFileName);
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
blFile.transferTo(file);
agentInfo.setBusinessLicense(path+"/"+newFileName);
}
int rowNum = agentInfoMapper.insertSelective(agentInfo);
if(rowNum==0){
return ResultBundle.failure(ResCode.FALSE,"添加一级代理信息失败");
}
return ResultBundle.success(null);
}
}
五、配置类application.yml
spring:
servlet:
multipart:
max-file-size: 2MB
更多推荐
所有评论(0)