• 使用Spring CommonsMultipartResolver 上传文件


    @RequestMapping("upload")
    @ResponseBody
    public OutParam springUpload(HttpServletRequest request)
    throws IllegalStateException, IOException {
    OutParam outParam = new OutParam();
    outParam.setResponseCode("success");
    long startTime = System.currentTimeMillis();
    // 将当前上下文初始化给 CommonsMutipartResolver (多部分解析器)
    ProjectProgramMemo memo = new ProjectProgramMemo();
    CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
    request.getSession().getServletContext());
    // 检查form中是否有enctype="multipart/form-data"
    if (multipartResolver.isMultipart(request)) {
    // 将request变成多部分request
    MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
    // 获取multiRequest 中所有的文件名
    Iterator iter = multiRequest.getFileNames();

    while (iter.hasNext()) {
    // 一次遍历所有文件
    MultipartFile file = multiRequest.getFile(iter.next()
    .toString());
    if (file != null) {
    String webPath = new WebUtils().getWebInfPath() + "upload/";
    String path = webPath + file.getOriginalFilename();
    // 上传
    file.transferTo(new File(path));
    // 暂存文件信息
    memo.setFileurl(webPath);
    memo.setFilename(file.getOriginalFilename());
    outParam.setData(memo);
    }

    }

    }
    long endTime = System.currentTimeMillis();
    System.out.println("方法三的运行时间:" + String.valueOf(endTime - startTime)
    + "ms");
    return outParam;
    }

    --------------------------------------------------------------------------------------------------------------------------------------------------

    前端实例

    <div class="pull-left ">
    <h4>方案说明</h4>
    <form id="program_form" action="${ctx }/project/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file" accept="application/msword">
    </form>
    <button type="button" onclick="uploadFile()">上传</button>
    <input type="hidden" id="add_p_fileurl" value=""/>
    <input type="hidden" id="add_p_filename" value=""/>
    </div>

    function uploadFile(){
    var form = new FormData(document.getElementById("program_form"));
    $.ajax({
    url:"${ctx }/project/upload",
    type:"post",
    data:form,
    processData:false,
    contentType:false,
    success:function(data){
    $("#add_p_fileurl").val(data.data.fileurl);
    $("#add_p_filename").val(data.data.filename);
    },
    error:function(e){
    alert("错误!!");
    }
    });
    }

    当能力支撑不了野心时,就该静下心来学习!
  • 相关阅读:
    Linux PCI网卡驱动的详细分析
    moand的编程学形式:一个(高阶)类型包办程序的组织--类型关乎复合
    范畴论完全解读:函子是范畴(高阶类型)间的映射
    函数式编程从起点到终点
    锁的本质:操作的序列化
    并发编程概述--C#并发编程经典实例
    异步IO的概念
    基于事件的并发编程
    runloop是iOS系统上的actor模式
    Monad、Actor与并发编程--基于线程与基于事件的并发编程之争
  • 原文地址:https://www.cnblogs.com/1234cjq/p/6724677.html
Copyright © 2020-2023  润新知