查看有道云笔记
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数据