Php中实现:利用Ajax技术上传Excel文件的实例

查看有道云笔记

Php中实现:利用Ajax技术上传Excel文件的实例 

<form enctype="multipart/form-data" method="post" id="uploadForm">
    选择需要上传的课程表:
    <input type="file" name="video">
</form>
<button id="upload_file">上传文件</button>

  

$(function () {
        $("#upload_file").click(function () {
            if (!window.FormData) {
                alert("浏览器不支持上传,请更换高版本的浏览器!");
                return false;
            }
            var file1 = $("input[name='video']").val();
            if (file1 == "") {
                alert('请选择上传文件!');
                return false;
            }
            //判断文件的类型
            var fileExtendName = file1.substring(file1.lastIndexOf('.') + 1).toLowerCase();
            if (fileExtendName != 'xlsx') {
                alert('请选择Excel文件,注意扩展名');
                return false;
            }
            //判断文件的大小
            var fileSize = $("input[name='video']")[0].files[0].size;
            if (fileSize > 100 * 1024) {
                alert("文件大小超过100K!");
                return false;
            }
            // var formData=new FormData($('#uploadForm')[0]);
            var type = $('#my_parameter_code').val();
            var formData = new FormData();
            formData.append('ge', type);
            // formData.append("video", $("input[name='video']")[0].files[0]);
            formData.append("video", $("#uploadfile")[0].files[0]);
            // console.log(formData);
            $.ajax({
                url: "662_upload.php",
                type: 'POST',
                data: formData,
                dataType: 'JSON',
                cache: false,
                //上传文件不需要缓存
                processData: false,
                //用于对data数据序列化处理,这里无需要处理
                contentType: false,
                //必须
                success: function (data) {
                    // console.log(data);
                    if (data['pic'] == 1) {
                        alert('上传成功!');
                    }else{
                        alert('请正确操作,课程表未成功上传!');
                    }
                },
                error: function () {
                    alert("Error!");
                },
            });
        });
    })

  

<?php
/**
 * Motto: Never too late to learn !
 * Created by VS Code at home !
 * Author: 葛绪涛   Nickname: wordGe   QQ:690815818
 * Date: 2022/1/22 * Time: 18:25
 * Filename: 662_upload.php
 * 功能:
 */


$myname = $_POST['ge'];
$flag = 1;
$size = 1;
$pattern = '/,|\*|\?|(|)|;|\'|\"|\/|#/';
$myname = preg_replace($pattern, '', $myname);
if (iconv_strlen($myname, 'UTF-8') > 12) {
    die('文件异常 27');
} else {
    $myname = $myname . '.xlsx';
    $max_size = 110;
    if ($_FILES['video']["error"] > 0) {
        $flag = 0;
        $size=2;
    } else {
        if (is_uploaded_file($_FILES['video']['tmp_name'])) {
            $upfile = $_FILES["video"];
            //获取数组里面的值
            $name = $upfile["name"];//上传文件的文件名
            $type = $upfile["type"];//上传文件的类型
            $size = $upfile["size"];//上传文件的大小
            $tmp_name = $upfile["tmp_name"];//上传文件的临时存放路径
            // 移动上传的文件到指定目录
            if ($size > $max_size * 1024) {
                $flag=0;
                echo '大小不能超过100K';
                die('文件异常!');
            }
            $extend = pathinfo("./" . $name);
            $extend = strtolower($extend["extension"]);
            if ($extend == 'xlsx') {
                $flag=1;
            } else {
                $flag=0;
                echo '只允许上传xlsx类型文件';
                die('文件扩展名异常!');
            }
            if ($flag == 1) {
                move_uploaded_file($tmp_name, '../up_excel/' . $myname);
            }
        }else{
            $flag=0;
            $size=3;
            $upfile = $_FILES["video"];
            //获取数组里面的值
            $name = $upfile["name"];//上传文件的文件名
        }
    }
}
$arr = array(
    'name' => $name,
    'myname' => $myname,
    'pic' => $flag,
    'size' => $size,
    'type'=>123
);
echo json_encode($arr); //输出json数据

  

 

posted @ 2022-01-24 16:40  海是歌  阅读(198)  评论(0)    收藏  举报