tp5文件上传

2019-04-28  本文已影响0人  Maiiiiiiiiiiiid

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));
上一篇下一篇

猜你喜欢

热点阅读