ajax文件上传(可批量上传)

html

<form id="form1" role="form" enctype="multipart/form-data">
    <input type="file" name="msg" value="添加图片" />
</form>
<button  onclick="sub()" style="margin-left:25%;width:50%;height:32px">提交</button>

js

<script type="text/javascript">
    function sub() {
        var form = new FormData(document.getElementById("form1"));
        $.ajax({
            type: "POST",
            url: "/ModelTest1/test/upload",
            data: form,
            // 下面三个参数要指定,如果不指定,会报一个JQuery的错误
            cache: false,
            contentType: false,
            processData: false,
            async: false,
            dataType:'json',
            success: function (data) {
                if (data.type == true) {
                    alert("添加成功");
                } else {
                    alert("上传出错");
                }
            }
        });
    }
</script>

spring-mvc.xml

<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 默认编码 -->
        <property name="defaultEncoding" value="utf-8" />
        <!-- 文件大小最大值 -->
        <property name="maxUploadSize" value="10485760000" />
        <!-- 内存中的最大值 -->
        <property name="maxInMemorySize" value="40960" />
    </bean>

后台模块

@ResponseBody
    @RequestMapping(value = "upload",method = RequestMethod .POST)
    public String upload(HttpServletRequest request,@RequestParam("msg")MultipartFile msg[]) throws Exception{
        request.setCharacterEncoding("utf-8");
        //返回对象
        Map map = new HashMap();
        map.put("type",false);
        //保存文件
        for(int i=0;i<msg.length;i++){
            //获取根目录下pic文件夹路劲
            String uploadPath=request.getSession().getServletContext().getRealPath("/pic/");
            //判断文件夹是否存在,如果不存在则创建文件夹
            File files = new File(uploadPath);
            if(i==0){
                if (!files.exists()) {
                    files.mkdir();
                }
            }
            //获取文件的后缀
            String suffix = msg[i].getOriginalFilename().substring( msg[i].getOriginalFilename().lastIndexOf("."));
            //用时间来生成文件名
            String newFileName=new SimpleDateFormat("yyyyMMddHHmmssS").format(new Date())+suffix;
            //创建一个文件
            File f=new File(uploadPath+"/"+newFileName);
            //通过CommonsMultipartFile的方法把上传的文件写到刚创建的文件
            msg[i].transferTo(f);
            /** 获取文件名 **/
            String fileName = msg[i].getOriginalFilename().substring(0, msg[i].getOriginalFilename().lastIndexOf("."));
            System.out.println(fileName);
            System.out.println(newFileName);
            map.put("type",true);
        }
        String json = JSON.toJSONString(map);
        return json;
    }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值