PHP文件上传学习(单文件,ajax无刷新方式)

来源:互联网 发布:淘宝秒杀群怎么找人 编辑:程序博客网 时间:2024/06/06 02:49

上传表单index.php

<!DOCTYPE html><html><head>    <meta charset="utf-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">    <title>ajax实现附件上传</title>    <meta name="description" content="">    <meta name="keywords" content="">    <link href="" rel="stylesheet"></head><script type="text/javascript">    window.onload= function(){        var fm = document.getElementsByTagName('form')[0];        fm.onsubmit = function(evt){            var url='./upload.php?s='+Math.random();            var fd = new FormData(this);            var xhr = new XMLHttpRequest();            xhr.onreadystatechange = function(){                if(xhr.readyState == 4){                    alert(xhr.responseText);                }            }            xhr.open('post',url);            xhr.send(fd);            evt.preventDefault();        }    }</script><body>    <h2>无刷新方式实现附件上传</h2>    <form method="post" action="" enctype="multipart/form-data">        <input type="file" name="avator">        <input type="submit" name="submit" value="上传">    </form></body></html>

对上传的文件进行处理upload.php

<?php/** * @authors zhangle (319126583@qq.com) * @date    2017-09-04 11:10:21 */header('Content-type:text/html;charset=utf-8');require 'config.php';  //引入配置文件if(isset($_POST)){    $myupfile = $_FILES['avator'];    // $maxsize = 2;    $arr_mime = ['image/jpeg','image/png'];    $dir = './upload/';    uploadfile($myupfile,$arr_mime,$dir);}else{    echo "<script>alert('非法上传');location.href='index.php'</script>";}

配置文件config.php

<?php function uploadfile($myupfile,$arr_mime,$dir){    if($myupfile['error']){        switch ($myupfile['error']) {            case '1':            echo '文件大小比php.ini中upload_max_filesize指定值要大';            break;            case '2':            echo '文件的小比表单的MAX_FILE_SIZE指定的值大';            break;            case '3':            echo '文件上传不完整(可能因为请求时间过长被终止)';            break;            case '4':            echo '没有文件随着这个请求上传';            break;            default:            echo '未知错误';            break;        }    }    $ext = substr($myupfile['name'],strrpos($myupfile['name'],'.'));    // $name = date('YmdHis').'-'.mt_rand(1000,9999).$ext;    $name = date('YmdHis').'-'.uniqid().$ext;    $dir_name = $dir.$name;    if(!is_uploaded_file($myupfile['tmp_name'])){        echo '上传有错误,请重新上传!';    }else{        $fs = finfo_open(FILEINFO_MIME_TYPE);        $mime = finfo_file($fs,$myupfile['tmp_name']);        if(in_array($mime,$arr_mime)){                        if(move_uploaded_file($myupfile['tmp_name'],$dir_name)){                echo "上传成功!";            }else{                echo '上传失败!';            }        }else{            echo '文件类型不正确,请重新上传';        }    }}
原创粉丝点击