zoukankan      html  css  js  c++  java
  • Ajax基于rest风格上传图片

    **1、注意事项(重要的放前面)**
    ajax的put请求不能使用formdata提交 ,不管怎样数据都为空
    ajax的put请求不能使用formdata提交 ,不管怎样数据都为空
    ajax的put请求不能使用formdata提交 ,不管怎样数据都为空
    只能用普通提交,formdata提交只能是文件域的提交
    ajax请求类型为put的时候,必须在 web.xml配置
    必须配置HttpPutFormContentFilter要不然传回后台的数据会为空

    ajax提交的方式 后台的controller不会返回视图,也就是不会跳转页面
    因为ajax是局部刷新技术,不会刷新整个页面
    ajax中成功回调函数的rs如果是string类型的话,ajax的请求方式必须加dataType = text
    string类型乱码的话,出现?????

    ajax的put请求不能使用formdata提交 ,不管怎样数据都为空


    formdata提交只能是文件域的提交,专门用于上传图片

    **2、首先让web程序支持put和delete请求**
    需要在web.xml中配置:

    <!-- 增加HiddenHttpMethodFilte过滤器:目的是给普通浏览器 增加 put|delete请求方式 -->
    <!-- 支持restful风格,可以把 POST 请求转为 DELETE 或 PUT 请求-->
    <filter>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!--配置SpringMVC,把PUT或者DELETE请求转换成POST-->
    <filter>
    <filter-name>HttpPutFormContentFilter</filter-name>
    <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>HttpPutFormContentFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

    **3、Ajax上传普通文本**
    ①post方式

    $.ajax({
    url: "/ssm_kgc/news/updateNews/" + id,
    type: "post",
    data: {
    "_method": "put",
    "categoryId":categoryId,
    "title":title,
    "summary":summary,
    "author":author,
    "content":content
    },
    success: function () {

    }
    })
    ②put方式提交

    $.ajax({
    url: "/ssm_kgc/news/updateNews/" + id,
    type: "PUT",
    data: {
    "categoryId":categoryId,
    "title":title,
    "summary":summary,
    "author":author,
    "content":content
    },
    success: function () {

    }
    })

    ## 4、Ajax上传图片的方式

    使用formdata来进行提交

    //图片被修改时触发,修改文件名
    function editImg() {

    var formdata = new FormData();
    formdata.append("fileUpload", $("#imgFile")[0].files[0]);

    //ajax上传图片
    $.ajax({
    url: "/ssm_kgc/fileUpload",
    type: "post",
    dataType: "text",
    data: formdata,
    contentType: false,
    processData: false,
    enctype: "multipart/form-data",
    success: function (rs) {
    // alert(rs)
    if (rs != '') {
    $("#myImg").attr("src", "/ssm_kgc/upload/" + rs);
    }
    }
    })
    }


    input标签中需要添加标签:

    <label for="imgFile">
    <img width="200" id="myImg" src="" alt="">
    点击图片修改
    </label>

    <!-- 专门用于上传文件的-->
    <input style="display: none;" onchange="editImg()" id="imgFile" type="file" name="fileUpload"><br>

    这样就可以了!!!

  • 相关阅读:
    Codeforces Round #325 (Div. 2) F:(meet in the middle)
    Educational Codeforces Round 3:E (MST+树链剖分+RMQ)
    Educational Codeforces Round 3:D. Gadgets for dollars and pounds(二分答案+贪心)
    CodeForce 484B:(最大余数)
    CodeForce 540C:(DFS)
    HDU 1010:(DFS)
    Poj1741-Tree(树分治)
    uva10245-The Closest Pair Problem(平面上的点分治)
    hdu1561-The more, The Better(树形dp)
    hdu2196-Computer(树形dp)
  • 原文地址:https://www.cnblogs.com/xwd2366846227/p/11187722.html
Copyright © 2011-2022 走看看