美文网首页
tp5文件上传

tp5文件上传

作者: Maiiiiiiiiiiiid | 来源:发表于2019-04-28 12:47 被阅读0次

    tp5文件上传

    [TOC]


    一个文件的上传:

    表单:

    <h2>文件上传试例</h2>
    <form action="{:url('up')}" method="post" class="form" enctype="multipart/form-data">
        选择文件:<input type="file" class="file" name="file" ><br/>
        <button type="submit" class="btn btn-primary">Submit</button>
    </form>
    

    up方法:

    //获取上传的文件
    $file = $request->file('file');
    //上传文件验证
    //根据验证规则提示错误信息
    $result = $this->validate(['file' => $file],['file' => 'require|image:100,100,png'],['file.require' => '请上传文件','file.image' => '必须是100*100的PNG格式图片']);
    if(true !== $result){
        $this->error($result);
    }
    //上传 命名的规则是按照日期 DS是系统分隔符(不同系统方向不一样)‘/’或者‘\’  这种是以date的方式重命名文件 将文件放在文件夹下
    //        $info = $file->rule('date')->move(ROOT_PATH . 'public' . DS . 'upload');
    //这种是以getInfo('type') . '_' . date("Y-m-d_H-i-s")重命名文件 都放在image文件夹下
    $info = $file->rule(function ($file){
        return $file->getInfo('type') . '_' . date("Y-m-d_H-i-s");
    })->move(ROOT_PATH . 'public' . DS . 'upload');
    
    if($info){
        $this->success($info->getSaveName() . '文件上传成功:'. $info->getRealPath());
    }else{
        $this->error($file->getError());
    }
    

    多个文件上传:

    这种方式就是上面的代码循环,还存在一些小问

    表单:

        <h2>文件上传试例</h2>
        <form action="{:url('up2')}" method="post" class="form" enctype="multipart/form-data">
            选择文件:<input type="file" class="file" name="img[]" ><br/>
            选择文件:<input type="file" class="file" name="img[]" ><br/>
            选择文件:<input type="file" class="file" name="img[]" ><br/>
            <button type="submit" class="btn btn-primary">Submit</button>
        </form>
    

    up2方法:

    $files = $request->file('img');
    $item = [];
    foreach ($files as $k=>$file){
        $result = $this->validate(['file' => $file],['file' => 'require|image'],['file.require' => '请上传文件','file.image' => '必须是100*100的PNG格式图片']);
        if(true !== $result){
            $this->error($result);
        }
        $info = $file->move(ROOT_PATH . 'public' . DS . 'upload');
    
        if($info){
            $item[] = $info->getRealPath();
        }else{
            $this->error($file->getError());
        }
    }
    $this->success('文件上传成功' . implode('<br/>',$item));
    

    相关文章

      网友评论

          本文标题:tp5文件上传

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