博客列表 >补0820作业: 图片上传原生PHP整理

补0820作业: 图片上传原生PHP整理

我们的关系如此狭窄
我们的关系如此狭窄原创
2021年08月24日 17:33:42466浏览

//前端

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="./layui/css/layui.css"  media="all">
</head>
<body>
<div style="text-align: center;">
    <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
        <legend>常规使用:普通图片上传</legend>
    </fieldset>

    <div class="layui-upload">
        <button type="button" class="layui-btn" id="test1">上传图片</button>
        <div class="layui-upload-list">
            <img class="layui-upload-img" id="demo1">
            <p id="demoText"></p>
        </div>

    </div>
</div>

</body>
<script  src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>
<script src="./layui/layui.js" charset="utf-8"></script>
<script>
    layui.use(['upload', 'element', 'layer'], function() {
        var $ = layui.jquery
            , upload = layui.upload
            , element = layui.element
            , layer = layui.layer;

        //常规使用 - 普通图片上传
        var uploadInst = upload.render({
            elem: '#test1'
            ,url: 'upload.php' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
      
            , done: function (res) {
                console.log(res);
              
                return layer.msg(res.msg);

            }

        });
    })
</script>

</html>

//后端

$data = $_FILES;
//echo "<pre>";
//print_r($data);die;
function mkdirs($dir,$mode){
    return is_dir($dir) or (mkdirs(dirname($dir),$mode) and mkdir($dir,$mode));
}
function write_log($logName,$data){
        $date = date('Y-m');
        $dir = __DIR__.'/public/log/'.$date.'/';
        mkdirs($dir,$mode=0777);
        $fp = fopen($dir.$logName.'.log',"a");
        fwrite($fp,var_export($data,true)."\r\n");//写入文件
        fclose($fp);//关闭资源通道
}
function upload_pic_err_return($code){
    switch ($code){
        case 2001:
            $msg = '上传的图片格式不正确';
            break;
        case 2002:
            $msg = '上传的图片太大';
            break;
        case 2003:
            $msg = '上传的图片不合法';
            break;
        case 4004:
            $msg = '图片上传失败';
            break;
    }
    $data =['code'=>$code,'msg'=>$msg,'data'=>''];
    write_log('pic_upload_err',$data);
    echo json_encode($data);
    die;
}
//$dir= __DIR__.'/bs/bss/bbs';$mode = 0777;
//function mkdirs($dir,$mode){
//    if(is_dir($dir) || @mkdir($dir,$mode)) return  true;
//    if(!mkdirs(dirname($dir),$mode)) return false;
//    return @mkdir($dir,$mode);
//}
$dir = __DIR__.'/public/upload/pic/'.date('Y-m-d',time()).'/';
if(!is_dir($dir)){
    mkdirs($dir,0777);
}
$type = str_replace('image/','',$data['pic']['type']);
$allow_ext = [];
if(!in_array($type,$allow_ext))  upload_pic_err_return(2001);
if($data['pic']['size'] - 0 > 5000000) upload_pic_err_return(2002);
if(!getimagesize($data['pic']['tmp_name']))   upload_pic_err_return(2003);
$newFile = md5(time().$data['pic']['name']).'.'.$type;
if(!move_uploaded_file($data['pic']['tmp_name'],$dir.$newFile)) upload_pic_err_return(4004);
echo json_encode(['code'=>1001,'msg'=>'成功上传图片','data'=>'']) and write_log('pic_upload_suc',['code'=>1001,'msg'=>'成功上传图片','data'=>'']);


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议