当前位置:首页 > H5 > 正文内容

ajax上传文件,formdata上传文件,ajax上传file文件,原生ajax上传文件,ajax上传图片,ajax上传文件formdata

高老师7年前 (2017-07-09)H51774

通过FormData对象可以组装一组用 XMLHttpRequest发送请求的键/值对。它可以更灵活方便的发送表单数据,因为可以独立于表单使用。如果你把表单的编码类型设置为multipart/form-data ,则通过FormData传输的数据格式和表单通过submit() 方法传输的数据格式相同

前端文件-Jquery版本:

<form id="form" enctype="multipart/form-data" method="post">
    <input type="text" name="desc" placeholder="文件名称"/><br/>
    <input type="file" name="file" placeholder="文件"/>
    <input type="button" id="submit" value="文件上传"/>
</form>
<script>
    $('#submit').click(function () {

       //Jquery对象转换为dom对象
        var $form = $('#form');
        var domForm = $form['0'];

        //构建formData对象
        var formData = new FormData(domForm);
        formData.append('diycontent','我是自定义数据');

        //异步上传文件
      $.ajax({
         url : 'file.php',
         type : 'POST',
         data : formData,
         // 告诉jQuery不要去处理发送的数据
         processData : false,
         // 告诉jQuery不要去设置Content-Type请求头, jquery 会自动设置为multipart/form-data
         contentType : false,
         beforeSend:function(){
            console.log('开始上传咯');
         },
         success : function(response) {
                console.log(response)
         },
         error : function(response) {
                console.log(response)
         }
      });

   });
</script>

前端文件-原生Javacript版本:

<form enctype="multipart/form-data"  method="post" onsubmit="return upload()">
    <input type="text" name="desc" placeholder="文件名称" /><br />
    <input type="file" name="file" placeholder="文件" />
    <input type="submit" value="文件上传" />
</form>
<script type="text/javascript">
    var    upload=function(){

        //获取表单对象
        form=document.forms[0];

        //构建formData对象
        formdata=new FormData(form);
        formdata.append('diycontent','我是自定义数据');

        //Ajax异步上传
        var httper=new XMLHttpRequest();
        httper.open('POST','file.php');
        httper.onload=function(oEvent){
            if(httper.status==200){
                console.log('success');
                console.log(httper.responseText);
            }
            else{
                console.log('error');
            }
        }
        httper.send(formdata);

        return  false;
    }
</script>

后端文件-PHP版本:

<?php
//文件上传
if(move_uploaded_file($_FILES['file']['tmp_name'], $_FILES["file"]["name"])){
    
    //记录日志
    $str='文件名:'.$_FILES['file']['tmp_name'].'--文件介绍:'.$_POST['desc'].'--Formdata追加的字段值:'.$_POST['diycontent'];
    
    file_put_contents('log/'.time().'.txt',$str);
    
    //让前端控制台输出看
    echo $str;
}

附件下载:

                learn.rar

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.5b1.cn/post/253.html

分享给朋友:

“ajax上传文件,formdata上传文件,ajax上传file文件,原生ajax上传文件,ajax上传图片,ajax上传文件formdata” 的相关文章

Javascript封装的原生Ajax请求

Javascript封装的原生Ajax请求

由于工作需要长期使用Ajax,一个页面重复的AJAX请求太多,于是封装起来,只需要编写回调函数/* ------------- 使用方法: 1.ajaxrequest()函数执行准备的参数(1.请求地址2.发送数据字符串拼接3.type值可选get/post4.回调函数名称)   exam...

Javascript-WebSql的用法

Javascript-WebSql的用法

    WebSql的原理是浏览器集成了sqllite数据库,Js操作,浏览器协助完成,没有多复杂。<!--          三个核心方法   ...

HTML5的离线缓存技术

HTML5的离线缓存技术

离线缓存的开启实例使用apache设置 1.apache配置文件搜索Addtype,我的addtype已经存在项目,如下    AddType application/x-compress .Z    AddType application/x-gz...

Javascript事件冒泡和捕捉

Javascript事件冒泡和捕捉

捕捉模式从DOM最顶层一直到最后一层,冒泡正好相反,具体运行以下实例测试.<!DOCTYPE html> <html> <head> <title>捕捉和冒泡</title> <meta charset="...

Javascript事件冒泡和捕捉的阻止

Javascript事件冒泡和捕捉的阻止

<!DOCTYPE html> <html> <head> <title>捕捉和冒泡</title> <meta charset="utf-8"> </head> <bo...

Javascript页面播放语音,Javascript语音读取页面的文字

Javascript页面播放语音,Javascript语音读取页面的文字

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <script type...