• spring mvc上传文件


    添加jar包

    <dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3</version>
    </dependency>

    配置在spring配置文件中配置bean

    <!-- SpringMVC上传文件时,需配置MultipartResolver处理器 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- 指定所上传文件的总大小不能超过80M......注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
    <property name="maxUploadSize" value="80000000"/>
    </bean>

    <!-- SpringMVC在超出上传文件限制时,会抛出org.springframework.web.multipart.MaxUploadSizeExceededException -->
    <!-- 该异常是SpringMVC在检查上传的文件信息时抛出来的,而且此时还没有进入到Controller方法中 -->
    <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="exceptionMappings">
    <props>
    <!-- 遇到MaxUploadSizeExceededException异常时,自动跳转到/WEB-INF/jsp/error_fileupload.jsp页面 -->
    <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">error_fileupload</prop>
    </props>
    </property>
    </bean>

    java后台

    @RequestMapping("/addImagerToService")
    @ResponseBody
    private void addImgFileTO(HttpServletRequest request){
    MultipartFile file=((MultipartHttpServletRequest) request).getFile("file");
    if(file!=null){
    manageImageService.addImgFileTO(file);
    };
    }

    service

    @Override
    public void addImgFileTO(MultipartFile file) {
    long id = NumberUtil.getLong(ReportNumberUtil.generateId());

    String realname = file.getOriginalFilename();
    String type = realname.substring(realname.indexOf("."));
    realname = realname.substring(0,realname.indexOf("."));
    type = type.toLowerCase();
    String filePath=ManageImageServiceImpl.IMGFILEPATH+File.separator+realname+type;//文件路径要包含文件名称
    File newF = new File(filePath);
    try {
    InputStream input = file.getInputStream();
    FileUtils.copyInputStreamToFile(input, newF);
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    html

    <input class="inputFileHiden filePosition" multiple type="file" onchange="UpladFile()" />

    function UpladFile() {
    var files = $("#imgForm").find("input")[0].files[0]; // 获取文件对象
    var FileController = ctp + '/imageAction/addImagerTo.action'; // 接收上传文件的后台地址
    // FormData 对象
    var form = new FormData();
    form.append("file", files); // 文件对象
    // XMLHttpRequest 对象
    var xhr = new XMLHttpRequest();
    xhr.open("post", FileController, true);
    xhr.onload = function () {
    alert("上传完成!");
    };
    xhr.send(form);
    }

  • 相关阅读:
    怎样让一个div高度自适应浏览器高度
    angular change the url , prevent reloading
    论习惯的重要性
    php的几个内置的函数
    cakephp 2.0 源码解读(一)
    svn switch 的用法
    浏览器兼容问题 及 解决方案 (一)
    浏览器兼容问题 及 解决方案 (二)
    promise 承诺
    ng-selected 与ng-options的使用
  • 原文地址:https://www.cnblogs.com/vindycxy/p/9377983.html
Copyright © 2020-2023  润新知