• 技术文章 >Java >java教程

    Java Spring MVC 上传下载文件配置及controller方法详解

    高洛峰高洛峰2017-01-23 10:51:07原创1230

    下载:

    1.在spring-mvc中配置(用于100M以下的文件下载)

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
    <list>
    <!--配置下载返回类型-->
    <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
    <bean class="org.springframework.http.converter.StringHttpMessageConverter">
    <!--配置编码方式-->
    <property name="supportedMediaTypes" value="application/json; charset=UTF-8" />
    </bean>
    </list>
    </property>
    </bean>

    下载文件代码

    @RequestMapping("/file/{name.rp}")
    public ResponseEntity<byte[]> fileDownLoad(@PathVariable("name.rp")String name, HttpServletRequest request,HttpServletResponse response) {
    // @PathVariable String name,
    // @RequestParam("name")String name,
    // System.out.println("<name>"+name);
    // System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
    ResponseEntity<byte[]> re = null;
    try {
    /**
    * css,js,json,gif,png,bmp,jpg,ico,doc,docx,xls,xlsx,txt,swf,pdf
    * **/
    //下载防止静态加载干扰
    Feelutile f=new Feelutile();
    name=f.getfileformat(name);
    String pathString="C:\\tempDirectory\\"+name;
    File file=new File(pathString);
    HttpHeaders headers=new HttpHeaders();
    //String filename=URLEncoder.encode(name, "UTF-8");//为了解决中文名称乱码问题
    String filename=new String(name.getBytes("utf-8"),"utf-8");
    byte[] by=FileUtils.readFileToByteArray(file);
    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
    //URLEncoder.encode(filename, "UTF-8")
    headers.setContentDispositionFormData("attachment",filename);
    headers.setContentLength(by.length);
    re=new ResponseEntity<byte[]>(by, headers, HttpStatus.CREATED);
    } catch (Exception e) {
    e.printStackTrace();
    try {
    request.getRequestDispatcher("/error/404.jsp").forward(request, response);
    } catch (ServletException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    } catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
    }
    return re;
    }

    上传文件:

    1在spring-mvc中配置

    <!--4.文件上传 配置 file upload -->
    <bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding">
    <value>UTF-8</value>
    </property>
    <property name="maxUploadSize">
    <value>1048576000</value>
    </property>
    <property name="maxInMemorySize">
    <value>40960</value>
    </property>
    </bean>

    在controller中代码如下

    @RequestMapping(value="/upload", method = RequestMethod.POST)
    @ResponseBody
    public Json upload(Doc doc, @RequestParam("uploadFile") CommonsMultipartFile file) {
    Json j = new Json();
    try {
    String realpath = this.servletContext.getRealPath("/upload");
    String uploadFileFileName = file.getOriginalFilename();
    String uploadFileFileNameWithoutSpace = uploadFileFileName.replaceAll(" ", "");
    String fileType = uploadFileFileNameWithoutSpace.substring(uploadFileFileNameWithoutSpace.lastIndexOf("."));
    File targetFile = new File(realpath+File.separator, uploadFileFileNameWithoutSpace);
    if (targetFile.exists()) {
    targetFile.delete();
    }
    file.getFileItem().write(targetFile);
    docService.upload(doc,uploadFileFileNameWithoutSpace);
    j.setSuccess(true);
    j.setMsg("Upload manual successfully");
    }catch (Exception e) {
    logger.error(ExceptionUtil.getExceptionMessage(e));
    j.setMsg("Upload manual unsuccessfully");
    }
    return j;
    }

    以上所述是小编给大家介绍的Java Spring MVC 上传下载文件配置及controller方法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对PHP中文网的支持!

    更多Java Spring MVC 上传下载文件配置及controller方法详解相关文章请关注PHP中文网!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:Java Spring 事务回滚详解 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一起来分析java设计模式之单例• Java数据结构之单链表与OJ题• 一文搞懂Java线程池实现原理• Java总结分享之反射、枚举、Lambda表达式• 详细介绍Java正则表达式之单字符匹配和预定义字符
    1/1

    PHP中文网