Java中附件上传

1、因为上传文件会使用到MultipartHttpServletRequest对象,我们需要在Springmvc配置文件中配置一个解析器

复制代码
    <!--为了使用到spring为我们提供的,MultipartHttpServletRequest对象,我们需要配置一个解析器 -->
       <!-- 而且对于Bean组件要想正常运行,必须配置一个id属性 -->
       <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
         <!-- 请求编码方式 -->
         <property name="defaultEncoding" value="UTF-8"/>
         <!-- 上传文件大小 -->
         <property name="maxUploadSize" value="10000000"/>
         <!-- 缓冲区大小 -->
         <property name="maxInMemorySize" value="1024"/>
         
       </bean>
复制代码

2、前端jsp代码

<div>
     <span>上传附件:</span><input type="file" id="accessory1"  name="accessory1" onchange="checkFile(this)" />
     <font size="2" color="red">注意:上传文件大小不能超过10M</font>
</div>
复制代码
      //上传文件校验
         function checkFile(file){
             var flag = getFilesize(file);
             if(!flag){
                 var fileInput = $("#accessory1");  
          //验证不通过,清空input框 fileInput.replaceWith(fileInput.clone()); } } var fileSize = 0; //文件大小默认为0 function getFilesize(file) { /*(1)判断文件后缀类型*/ var strs = new Array(); //定义一数组 var pic1 = $(file).val(); //获取input框的值,文件路径 strs = pic1.split('.'); //分成数组存储 var suffix = strs[strs.length - 1]; //获取文件后缀 if (suffix != 'pdf' && suffix != 'docx' && suffix != 'doc'&& suffix != 'txt') { alert("仅能上传扩展名为pdf、docx、doc、text的文件!"); return false; } /*(2)获取文件大小,以Kb为单位*/ fileSize = file.files[0].size / 1024; if (fileSize > 10000) { alert("您选择的文件太大,请选择小于10M的文件!"); return false; } return true; }
复制代码
           // 表单提交时执行的方法
                var form = new FormData();
                form.append("accessory1", $('#accessory1')[0].files[0]);

复制代码
//后端请求处理
   @RequestMapping(value="/addGg",method=RequestMethod.POST) @ResponseBody public boolean addGg(MultipartFile accessory1){//发布公告的同时是否有附件上传 if (accessory1 != null ) {
       logger.info("<--带有附件公告发布开始-->"); InputStream is = null; try { is = accessory1.getInputStream(); byte[] b = new byte[is.available()]; is.read(b); jjkjGggl.setAccContent(b); } catch (IOException e) { logger.info("<--附件读取异常!-->:"+e); throw new RuntimeException("附件读取异常!"); } finally{ try { is.close(); } catch (IOException e) { logger.info("<--附件读取释放资源异常!-->:"+e); throw new RuntimeException("附件读取释放资源异常!"); } } }return false; }
posted @ 2018-08-18 13:40  Code_World_Final  阅读(3109)  评论(0编辑  收藏  举报