您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp5学习笔记-文件上传
发布时间:2018-06-14 21:53:05编辑:雪饮阅读()
所需依赖:
use think\Image;
use think\Request;
单文件上传:
模板中:
<form method="post" enctype="multipart/form-data" action="{:url('up')}">
<p>选择文件:<input type="file" name="file2"/></p>
<p><input type="submit" value="提交"/></p>
</form>
控制器中文件合规性验证:
public function up(Request $request){
$file=$request->file("file2");
$result=$this->validate(['file2'=>$file],['file2'=>'require|image']);
if(true !==$result){
$this->error($result);
}
}
控制器中文件合规性验证-自定义:
public function up(Request $request){
$file=$request->file("file2");
//上传验证
$result=$this->validate(['file2'=>$file],['file2'=>'require|image'],['file2.require'=>'请选择上传'],['file2.image'=>'非法图像文件']);
if(true !==$result){
$this->error($result['file2']);
}
}
控制器中文件合规性验证-自定义-精细到文件属性:
public function up(Request $request){
$file=$request->file("file2");
//上传验证
$result=$this->validate(['file2'=>$file],['file2'=>'require|image:100,100,png'],['file2.require'=>'请选择上传'],['file2.image'=>'必须是100*100的png格式文件']);
if(true !==$result){
$this->error($result['file2']);
}
}
控制器中的文件上传-md5:
该方式上传后存储文件名以md5格式
public function up(Request $request){
$file=$request->file("file2");
//上传验证
$result=$this->validate(['file2'=>$file],['file2'=>'require|image:100,100,png'],['file2.require'=>'请选择上传'],['file2.image'=>'必须是100*100的png格式文件']);
if(true !==$result){
$this->error($result['file2']);
}
else{
//DS常量用来调用当前系统中的文件路径节点符号
$info=$file->rule('md5')->move(ROOT_PATH.'public'.DS.'uploads');
}
}
控制器中的文件上传-日期:
该方式上传后存储文件名以md5格式,并且存储所在文件夹的分组名以日期格式命名。
public function up(Request $request){
$file=$request->file("file2");
$result=$this->validate(['file2'=>$file],['file2'=>'require|image:100,100,png'],['file2.require'=>'请选择上传'],['file2.image'=>'必须是100*100的png格式文件']);
if(true !==$result){
$this->error($result['file2']);
}
else{
$info=$file->rule('date')->move(ROOT_PATH.'public'.DS.'uploads');
}
}
控制器中的文件上传-自定义:
该方式上传后存储文件名以自定义格式
public function up(Request $request){
$file=$request->file("file2");
$result=$this->validate(['file2'=>$file],['file2'=>'require|image:100,100,png'],['file2.require'=>'请选择上传'],['file2.image'=>'必须是100*100的png格式文件']);
if(true !==$result){
$this->error($result['file2']);
}
else{
$info=$file->rule(
function ($file){
return $file->getInfo('type').date('Y-m-d_H-i-s');
}
)->move(ROOT_PATH.'public'.DS.'uploads');
}
}
控制器中完整的文件上传:
public function up(Request $request){
$file=$request->file("file2");
$result=$this->validate(['file2'=>$file],['file2'=>'require|image:100,100,png'],['file2.require'=>'请选择上传'],['file2.image'=>'必须是100*100的png格式文件']);
if(true !==$result){
$this->error($result['file2']);
exit();
}
$info=$file->rule(
function ($file){
return $file->getInfo('type').date('Y-m-d_H-i-s');
}
)->move(ROOT_PATH.'public'.DS.'uploads');
if($info){
$this->success($info->getSaveName().'文件上传成功'.$info->getRealPath());
}
else{
$this->error($file->getError());
}
}
多文件上传
模板中:
<form method="post" enctype="multipart/form-data" action="{:url('up')}">
<p>选择文件:<input type="file" name="file2[]"/></p>
<p>选择文件:<input type="file" name="file2[]"/></p>
<p>选择文件:<input type="file" name="file2[]"/></p>
<p><input type="submit" value="提交"/></p>
</form>
控制器中:
<form method="post" enctype="multipart/form-data" action="{:url('up')}">
<p>选择文件:<input type="file" name="file2[]"/></p>
<p>选择文件:<input type="file" name="file2[]"/></p>
<p>选择文件:<input type="file" name="file2[]"/></p>
<p><input type="submit" value="提交"/></p>
</form>
关键字词:thinkphp5,文件上传