ajaxFileupload使用

◇◆丶佛笑我妖孽 提交于 2019-12-30 10:09:40

ajaxFileuplaod 是一个异步上传图片的插件

 

1.引入插件:

<script src="${ctxStatic}/js/ajaxfileupload.js" type="text/javascript"></script>

<script src="${ctxStatic}/js/jquery.min.js" type="text/javascript" ></script>
<script src="${ctxStatic}/js/bootstrap.min.js" type="text/javascript"></script>

2.jsp页面

<form action="" class="form-group" id="data-form" encType="multipart/form-data"/>

  <label class="col-sm-2 control-label">图片地址:</label>
                        <div class="col-md-4">
                            <input class="form-control" id="adPicLink" name="adPicLink"
                                required type="text" style="width: 200px;" />
                        </div>
                        <label class="col-sm-2 control-label">活动地址:</label>
                        <div class="col-md-4">
                            <input class="form-control" id="adLink" name="adLink"
                                required type="text" style="width: 200px;" />
                        </div>

                        <label class="col-sm-2 control-label">活动状态:</label>
                        <div class="col-md-4">
                            <input class="form-control" id="adStatus" name="adStatus" required
                                type="text" style="width: 200px;" />
                        </div>
                        <label class="col-sm-2 control-label" id ="uploadLabel">图片上传:</label>
                        <div class="col-md-4">
                            <input id = "upload" name="upload" type="file" multiple="" />
                        </div>

</form>

*encType="multipart/form-data":当数据和图片一起上传时,一定要加

3.js方法

url = "${ctx}/${moduleName}/update.json?";

var params = "adName="+$("#adName").val()+"&adPicLink="+$("#adPicLink").val()//我试过用data:{“name”:“name”}传参数,后台取到的是null,我觉得只能用这样的传参方式,也许还有更好的
 url = url +params;
             $.ajaxFileUpload
                (
                    {
                        url: url,  //上传处理程序地址
                        type: 'post',// 请求方式
                        fileElementId: 'upload',//上传图片标签的Id

         data:data(我觉得没用,建议不用加)
                        dataType: 'json',//服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。
                        success: function (result)//服务器响应成功处理函数
                        error: function (data)//服务器响应失败处理函数
                    }
                )

4.配置文件中配置

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

5.后台Controller获取

@RequestMapping(value = "add", method = RequestMethod.POST)
    public ModelAndView add(@FormModel TAdvertisement entity,HttpServletRequest request, @RequestParam(value = "upload") MultipartFile file) throws Exception {
        ModelAndView mav = new ModelAndView("/demo2/show");
        String fileName = file.getOriginalFilename();
        String path =Thread.currentThread().getContextClassLoader().getResource("").toString();//获取项目路径
        path=path.replace('/', '\\'); // 将/换成\
        path=path.replace("WEB-INF\\classes\\", ""); //去掉class\
        path=path.replace("file:", ""); //去掉file:
        path=path.substring(1);
        path=path+"images";
        logger.debug("path================>" + path);
        logger.debug("fileName==============>" + fileName);
        File targetFile = new File(path, fileName);
        file.transferTo(targetFile);
        logger.debug(path);
        advertisementService.addItem(entity);
        mav.addObject("result", "SUCCESS");
        return mav;
    }

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!