zoukankan      html  css  js  c++  java
  • 文件上传

    //文件名称采用的是js原生获取方式
    var file = document.getElementById("cover_img").files[0];
    //利用FormData传送文件  append添加需要的数据 var fileObj = new FormData(); fileObj.append('imageFile', file); fileObj.append('fileName', file.name);
    //利用XMLHttpRequest对象向后台发送文件 var xhr = new XMLHttpRequest();
    //请求方式,路径, xhr.open('post','url',true);
    //返回值 xhr.onload = function () { if(xhr.readyState == 4 && xhr.status == 200){   var resultData = xhr.responseText;   if(resultData == ''){     layer.close(updateIndex)     layer.alert("保存成功")   }else{     var result = $.parseJSON(resultData);     layer.alert(result.msg);   }
    } else {   alert("请联系管理员");   return;   }; };
    //发送请求 xhr.send(fileObj);

      注:

        文件上传方式有多种;

        但是ajax利用FormData对象传输文件,后台接收不到文件,具体原因不明,有待继续验证

    下面补上ajax上传方式,经测试可以上传

        var TESTFILE = document.getElementById("TESTFILE").files[0];
        var formData = new FormData();
         formData.append("file", TESTFILE);
         formData.append("fileName", TESTFILE.name);
         $.ajax({
            url:"${pageContext.request.contextPath}/videomanager/TESTFILE.json",
            type:"post",    //  必须为post,基础,不解释
            data:formData,
            dataType:"json",
         //cache: false,  关闭缓存,一定不要加,否则会接收不到参数,ajax传递数据靠的就是缓存,关闭之后如何才能传递参数?只要返回值吗?在这里吐槽下说让加的,是何居心? processData:false,  //必须参数  序列化参数 contentType:false,  //必须参数  内容类型,不错的一个属性,可以查查资料了解了解,具体作用就是可以将复杂的参数传递到后台 success:function(result){ console.log(result); }, error:function(){ alert("error"); } });
  • 相关阅读:
    NGUI版虚拟摇杆
    设计模式 --外观模式(Facade)
    JavaScript提高:005:ASP.NET使用easyUI TABS标签显示问题
    提高工作效率:15个实用的项目管理工具
    前端开发面试题集锦(一)
    SWF代码分析与破解之路 (YueTai VIP视频信息获取工具) Socket续篇
    Android Studio 设置项目Module编码,解决Android Studio项目执行时乱码问题
    HDU2256-Problem of Precision(矩阵构造+高速幂)
    oracle初始安装大小
    强制杀oracle进程
  • 原文地址:https://www.cnblogs.com/foreign-student/p/8809002.html
Copyright © 2011-2022 走看看