美文网首页
ajax 异步多图上传

ajax 异步多图上传

作者: observerb | 来源:发表于2019-02-27 10:48 被阅读0次

    后台

    <?php

    header('Access-Control-Allow-Origin:*');

    $file = $_FILES['file'];  //得到传输的数据,以数组的形式

    $name = $file['name'];      //得到文件名称,以数组的形式

    $upload_path = "uploadimg/"; //上传文件的存放路径

    //当前位置

    foreach ($name as $k=>$names){

        $type = strtolower(substr($names,strrpos($names,'.')+1));//得到文件类型,并且都转化成小写

        $allow_type = array('jpg','jpeg','gif','png'); //定义允许上传的类型

        //把非法格式的图片去除

        if (!in_array($type,$allow_type)){

            unset($name[$k]);

        }

    }

    $str = '';

    foreach ($name as $k=>$item){

        $type = strtolower(substr($item,strrpos($item,'.')+1));//得到文件类型,并且都转化成小写

        if (move_uploaded_file($file['tmp_name'][$k],$upload_path.time().$name[$k])){

            $str .= ','.$upload_path.time().$name[$k];

            echo 'success';

        }else{

            echo 'failed';

        }

    }

    echo $str;

    前端

    <!DOCTYPE html>

    <html>

        <head>

            <meta charset="utf-8">

            <title>Ajax+PHP实现异步图片上传</title>

            <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

            <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

            <style type="text/css">

            #feedback{

                height: 200px;

                text-align: center;

                height: 160px;

                border: 1px solid silver;

                border-radius: 3px;

            }

            #feedback img{

                margin:3px 10px;

                border: 1px solid silver;

                border-radius:3px;

                padding: 6px;

                width: 35%;

                height: 85%;

            }

            #feedback p{

                font-family: "微软雅黑";

                line-height: 120px;

                color: #ccc;

            }

            .file {

                position: relative;

                display: inline-block;

                border: 1px solid #1ab294;

                border-radius: 4px;

                padding: 8px 16px;

                overflow: hidden;

                color: #fff;

                text-decoration: none;

                text-indent: 0;

                line-height: 20px;

                color: #1ab294;

                }

                .file input {

                position: absolute;

                font-size: 100px;

                right: 0;

                top: 0;

                opacity: 0;

                }

                .box{

                margin-top: 10px;

                text-align: center;

                }

                .box a{

                margin-left: 10px;

                }

        </style>

    </head>

    <body>

    <button type="button" data-toggle="tooltip" id="button-upload" class="btn btn-primary"><i class="fa fa-upload">666</i></button>

    <script>

    $('#button-upload').on('click', function() {

        $('body').prepend('<form enctype="multipart/form-data" id="form-upload" style="display: none;"><input type="file" name="file[]" value="" multiple="multiple" /></form>');

        $('#form-upload input[name=\'file[]\']').trigger('click');

        if (typeof timer != 'undefined') {

            clearInterval(timer);

        }

        timer = setInterval(function() {

            if ($('#form-upload input[name=\'file[]\']').val() != '') {

                clearInterval(timer);

                var df = new FormData($('#form-upload')[0]);

                console.log(df);

                $.ajax({

                    url: 'a.php',

                    type: 'post',

                    dataType: 'json',

                    data: df,

                    cache: false,

                    contentType: false,

                    processData: false,

                    beforeSend: function() {

                        // $('#button-upload i').replaceWith('<i class="fa fa-circle-o-notch fa-spin"></i>');

                        // $('#button-upload').prop('disabled', true);

                    },

                    complete: function() {

                        // $('#button-upload i').replaceWith('<i class="fa fa-upload"></i>');

                        // $('#button-upload').prop('disabled', false);

                    },

                    success: function(json) {

                        // if (json['error']) {

                        //  alert(json['error']);

                        // }

                        // if (json['success']) {

                        //  alert(json['success']);

                        //  $('#button-refresh').trigger('click');

                        // }

                    },

                    error: function(xhr, ajaxOptions, thrownError) {

                        alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);

                    }

                });

            }

        }, 500);

    });

    </script>

    </body>

    </html>

    相关文章

      网友评论

          本文标题:ajax 异步多图上传

          本文链接:https://www.haomeiwen.com/subject/omzgyqtx.html