江丶小鱼
2017-04-07 03:59
采纳率: 20%
浏览 4.6k
已采纳

java ssm框架 文件上传,获取不到文件

     控制器中方法:
             @RequestMapping(value = "/upload2")
public void uploadFile2(HttpServletRequest request, HttpServletResponse response) {
    try {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        List<MultipartFile> fileList = multipartRequest.getFiles("file");

        for (MultipartFile mf : fileList) {
            if(!mf.isEmpty()){
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

    jsp页面:
    <form action="upload2" value="file" enctype="multipart/form-data" method="post" >
<div style="margin-bottom:10px;">
    <input type="file"    value="file" id="image" />
    <input type="submit"   value="提交" />
</div>

  xml配置文件:

<bean id="multipartResolver"
      class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding" value="UTF-8" />

    <property name="maxUploadSize" value="2000000000" />
</bean>

    在控制器中multipartRequest.getFiles("file")获取的list为0,有大神知道问题出在哪吗?
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

11条回答 默认 最新

  • 貌似善良v 2017-04-10 08:56
    已采纳

    jar包
    CommonsMultipartResolver解析器依赖commons-fileupload和commons-io,加入如下jar包:
    Commons-fileupload.jar
    Commons-io.jar
    在springmvc.xml中
    配置多媒体解析器

    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 设置上传文件的最大尺寸为5MB -->
        <property name="maxUploadSize">
            <value>5242880</value>
        </property>
    </bean>
    

    图片上传
     controller:

    //修改提交
    @RequestMapping("/editItemSubmit")
    public String editItemSubmit(Items items, MultipartFile pictureFile)throws Exception{

        //原始文件名称
        String pictureFile_name =  pictureFile.getOriginalFilename();
        //新文件名称
        String newFileName = UUID.randomUUID().toString()+pictureFile_name.substring(pictureFile_name.lastIndexOf("."));
    
        //上传图片
        File uploadPic = new java.io.File("F:/develop/upload/temp/"+newFileName);
    
        if(!uploadPic.exists()){
            uploadPic.mkdirs();
        }
        //向磁盘写文件
        pictureFile.transferTo(uploadPic);
    

    .....

     页面:

    form添加enctype="multipart/form-data":

    action="${pageContext.request.contextPath }/item/editItemSubmit.action"
    method="post" enctype="multipart/form-data">
    点赞 评论
  • 画一 2017-04-07 04:36

    以前做过这个 是这么取文件吗multipartRequest.getFiles("file")

    点赞 评论
  • postnull 2017-04-07 04:43

    jsp写错了,文件控件不是value=“file”,而是name="file":

     <input type="file"  name="file" id="image" />
    
    点赞 评论
  • 画一 2017-04-07 04:45

    你这个好像缺东西呀 不知道是什么思路

    点赞 评论
  • postnull 2017-04-07 04:57

    也可能是缺少commons-fileupload.jar包

     <dependency>
        <artifactId>commons-fileupload</artifactId>
        <groupId>commons-fileupload</groupId>
        <version>1.3</version>
    </dependency>
    
    点赞 评论
  • 小和尚的心愿 2017-04-07 05:11

      - 配置MultipartResolver 用于文件上传 使用spring的CommosMultipartResolver -->

    p:defaultEncoding="UTF-8"
    p:maxUploadSize="5400000"
    p:uploadTempDir="fileUpload/temp"
    >

    /beans:bean

    点赞 评论
  • 转角人生 2017-04-07 05:51

    你getFile的时候,调用的是页面上的name属性,你在页面上连name=“file”都没有,你怎么可以获取file呢?

    点赞 评论
  • lihongbiao0610 2017-04-07 06:23

    1:前台

    2:后台
    public void uploadFile2(HttpServletRequest request,
    HttpServletResponse response,
    @RequestParam(value = "file", required = true) MultipartFile file,) {

        System.out.println(file.getSize());
        System.out.println(file.getInputStream());
    
    }
    
    点赞 评论
  • lihongbiao0610 2017-04-07 06:29

    图片说明

    点赞 评论
  • woTMbushixiaobai 2017-04-07 07:22

    前端用jquery.fileupload.js插件,后端commons.fileupload解析

    点赞 评论
  • Texous 2018-08-06 09:18

    把 xml 配置里面的文件上传配置删除就可以了

    点赞 评论

相关推荐 更多相似问题