在文件上传的时候AdDto中的属性都为空是什么原因
来源:3-6 _广告模块开发Service层图片上传功能(下)
慕粉3683290
2017-09-08
4回答
-
源生活
2017-09-08
1、form里的 enctype="multipart/form-data" 这个属性加过了?
2、表单里控制的name名称和dto都能对应上吗?
3、web.xml里你是不是用的最终版里的?内容是什么样的?
012017-09-08 -
慕粉3683290
提问者
2017-09-08
帮忙看看,呵呵
00 -
慕粉3683290
提问者
2017-09-08
表单提交请求
controller处理请求
/**
* 新增
*/
@RequestMapping("/add")
public String add(AdDto adDto, Model model) {
if (adService.add(adDto)) {
model.addAttribute(PageCodeEnum.KEY, PageCodeEnum.ADD_SUCCESS);
} else {
model.addAttribute(PageCodeEnum.KEY, PageCodeEnum.ADD_FAIL);
}
return "/content/adAdd";
}@JsonInclude(Include.NON_NULL)
public class AdDto extends Ad {
private String img;
private MultipartFile imgFile;
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public MultipartFile getImgFile() {
return imgFile;
}
public void setImgFile(MultipartFile imgFile) {
this.imgFile = imgFile;
}
}@SuppressWarnings("ALL")
@Service
public class AdServiceImpl implements AdService {
@Autowired
private AdDao adDao;
@Value("${adImage.savePath}")
private String adImageSavePath;
public boolean add(AdDto adDto) {
Ad ad = new Ad();
ad.setTitle(adDto.getTitle()); adDto.getTitle()无法获取到值,因为参数adDto中的属性为空
ad.setLink(adDto.getLink());
ad.setWeight(adDto.getWeight());
if(adDto.getImgFile()!=null&&adDto.getImgFile().getSize()>0){
String fileName = System.currentTimeMillis()+"_"+adDto.getImgFile().getOriginalFilename();
//adDto.getImgFile().getOriginalFilename()上传文件时候的文件名
File file = new File(adImageSavePath+fileName);
File fileFolder = new File(adImageSavePath);
if(!fileFolder.exists()){
fileFolder.mkdirs();
}
try {
adDto.getImgFile().transferTo(file);
ad.setImgFileName(fileName);
adDao.insert(ad);
return true;
} catch (IOException e) {
// e.printStackTrace();
return false;
}
}else {
//如果文件为必填时,没有上传文件是不能保存的
return false;
}
}<!-- 配置文件上传解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 指定所上传文件的总大小不能超过20M。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="20000000"/>
<property name="defaultEncoding" value="utf-8"></property>
</bean>
00 -
源生活
2017-09-08
按视频里,你说下做文件上传功能需要哪几步?你都做了吗?
00
IT段子手详解MyBatis遇到Spring 秒学Java SSM开发大众点评
1001 学习 · 485 问题
相似问题