如何使用sprimgMvc上传文件?

后端框架使用springMvc, 与前端页面进行交互 , 涉及到图片,文本等文件的上传功能 , 页面使用jsp页面


页面部分 , 使用表单提交 , 并要求后端返回json格式的数据, 这样可以获取后端处理信息, 以便于在页面进行信息提示 .


表单部分代码如下 :

<form id="pageListForm" class="form-horizontal" enctype="multipart/form-data">
              <div class="box-body">
              
                <div class="form-group">
                  <label for="inputEmail3" class="col-sm-2 control-label">邮箱</label>
                  <div class="col-sm-10">
                    <input type="text" class="form-control" name="t_email" style="width: 450px">
                  </div>
                </div>
                <div class="form-group">
                  <label for="inputEmail3" class="col-sm-2 control-label">用户名</label>
                  <div class="col-sm-10">
                    <input type="text" class="form-control" name="t_userName" style="width: 450px">
                  </div>
                </div>
                
                <div class="form-group">
                  <label for="inputEmail3" class="col-sm-2 control-label">头像</label>
                  <div class="col-sm-10">
                    <input type="file" οnchange="PreviewheadImage(this);" name="headImg" style="width: 350px;height: 35px">
                  </div>
                </div>
                <div class="form-group">
                  <label for="inputPassword3" class="col-sm-2 control-label">头像预览</label>
                  <div class="col-sm-10">
                     <img id="headImg" alt="" src="" style="width: 300px;height: 200px">
                  </div>
                </div>
                
                
                <div class="form-group">
                  <label for="inputEmail3" class="col-sm-2 control-label">背景图</label>
                  <div class="col-sm-10">
                    <input type="file" οnchange="PreviewbackgroundImage(this);" name="backgroundImg" style="width: 350px;height: 35px">
                  </div>
                </div>
                <div class="form-group">
                  <label for="inputPassword3" class="col-sm-2 control-label">背景图预览</label>
                  <div class="col-sm-10">
                     <img id="backgroundImg" alt="" src="" style="width: 300px;height: 200px">
                  </div>
                </div>
                
              </div>
              
              <!-- /.box-body -->
              <div class="box-footer">
                <button type="button" class="btn btn-default">取消</button>
                <button type="button" οnclick="saveTeacher();" class="btn btn-info">确定</button>
              </div>
              <!-- /.box-footer -->
    </form>

注意部分 :

1 , 该form表单 要设置 enctype="multipart/form-data" , 为什么要设置这个?

2, 如果<button> 直接设置为submit, 则该表单直接提交到后端, 后端处理结果如何返回给前端,告诉用户操作是成功还是失败 ?

3, 如何提交form表单 , 能让后端返回json格式的数据 ?


方案如下 :

  //保存轮播图
  function saveTeacher(){
	  
	  var formData = new FormData($("#pageListForm")[0]);
	  
	  $.ajax({
			url : "${ctx}/platform/saveTeacherInformation.do",
			type : 'POST',
			data : formData,
			async : false,
			cache : false,
			contentType : false,
			processData : false,
			success : function(data) {
				showMessageDialog(data.msg);
			},
			error : function(data) {
				showMessageDialog("网络异常");
			}
	  });
  }

1, 什么是FormData ?

2, 通过new FormData 为什么可以将数据提交到后端 ?


后端 springMvc的控制器 接受前端请求

	/**
	 * 保存老师信息
	 * @param request
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/saveTeacherInformation.do")
	public AjaxResult saveTeacherInformation(HttpServletRequest request,
				@RequestParam("headImg") MultipartFile headImgFile,
				@RequestParam("backgroundImg") MultipartFile backgroundImgFile){
		AjaxResult saveTeacherInformation = null ;
		try {
			saveTeacherInformation = teacherService.saveTeacherInformation(request,headImgFile,backgroundImgFile);
		} catch (Exception e) {
			e.printStackTrace();
			return AjaxResult.errorResult("保存失败");
		}
		return saveTeacherInformation;
	}

1, 通过 @RequeatParam("属性名" ) MultipartFile file , 接受前端传递相应属性名的File文件 , 格式为 MultipartFile

2 , MultipartFile 是什么格式的文件 ? 与 File 有什么区别 ?

3, 如何操作这个MultipartFile , 将文件保存到服务器上 ?


运行报错  :

  Expected MultipartHttpServletRequest: is a MultipartResolver configured?

翻译 : 这是是一个multipartresolver配置吗 ?  意思是不是multipartresolver 配置 , 为什么?


springMvc上传文件 需要配置 :

	<!-- springMvc上传文件 -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  
		<property name="maxUploadSize" value="500000000000"/>
	</bean>

1,  需要引入jar包 : commons-fileupload-X.X.jar

2, 配置这个是做什么的 ?


可见 , 我有很多的困惑 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值