由于没有提供multi-part配置,无法处理parts

由于没有提供multi-part配置,无法处理parts

老师,我按照这个课程的上传图片的用法用在自己的项目当中可是报出这个问题是什么意思?

@RequestMapping(value = "/addheadline", method = RequestMethod.POST)
 private String addheadline(HttpServletRequest request) throws IOException {
  String name = HttpServletRequestUtil.getString(request, "headlinename");
  //String img = HttpServletRequestUtil.getString(request, "img");
  Integer priority = HttpServletRequestUtil.getInt(request, "priority");
  Integer enableStatus = HttpServletRequestUtil.getInt(request, "enablestatus");
  // 定义一个头条对象提交参数
  HeadLine headLine = new HeadLine();
  
  String img = "";
  try{
            // 如果用户上传了这里代码是不会出现异常 了
            // 如果没有上传这里出现异常
            Part part = request.getPart("img");
            // 保存到项目的路径中去
            String sysPath = "D:\\\\projectdev\\\\image\\\\upload\\\\item\\\\headtitle";
            // 定义一个新的图片名称
            String fileName = UUID.randomUUID().toString() ;
            //  提取图片的类型
            // 上传文件的内容性质
            String contentDispostion = part.getHeader("content-disposition");
            // 获取上传文件的后缀名
            String suffix = contentDispostion.substring(contentDispostion.lastIndexOf("."), contentDispostion.length() - 1);
            fileName+=suffix ;
            // 把图片保存到路径中去
            part.write(sysPath+"/"+fileName);
            img = fileName;
        }catch (Exception e){
            e.printStackTrace();
        }
  
  headLine.setLineName(name);
  headLine.setEnableStatus(enableStatus);
  headLine.setPriority(priority);
  headLine.setLineImg(img);
  
  int effectedNum = headLineService.insertHeadLine(headLine);
  if(effectedNum <= 0) {
   return "addheadline";
  }else {
   return "headlist";
  }
  
  
 }

http://img1.sycdn.imooc.com//climg/5e79d274093cc3eb12760175.jpg

http://img1.sycdn.imooc.com//climg/5e79d2950988cd4d07610171.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
我会看星星 2020-03-26 14:27:53

使用了SpringMVC的文件上传就不能使用request.getPart来获取文件上传的内容了吧 ,而是使用MultipartFile 来吧

https://blog.csdn.net/qq_38225558/article/details/83387917

好帮手慕小班 2020-03-24 19:47:16

同学你好,出现这个错误,一般是配置文件上传解析器出现问题, id:必须是multipartResolver,同学参考着这个再来检查一下自己的配置。

<!--配置文件上传解析器 id:必须是multipartResolver-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="20971520"/>
        <property name="defaultEncoding" value="utf-8"/>
    </bean>

另外检查同学贴出的配置信息,并没有错误,所以同学可以尝试清理一下缓存,再来重新启动一下。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 Levinson #1
    老师,清除缓存后也还是提示这个错误。也按照老师的要求把文件上传解析器给改了。
    2020-03-25 10:16:09
  • 好帮手慕小班 回复 提问者 Levinson #2
    同学你好,老师测试源码中的代码并没有问题,这里想问一下同学还有改哪里的配置吗?继续加油 祝:学习愉快~
    2020-03-25 16:57:44
  • 提问者 Levinson 回复 好帮手慕小班 #3
    老师。Part part = request.getPart("img");这句话是从jsp页面中名为"img"那接收到图片的地址吗? 没有改其他的配置。
    2020-03-25 17:18:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师