单文件上传
1)页面代码
<form action="{:url('upload')}" method="post" enctype="multipart/form-data">
<p>
File:
<input type="File" name="file" value="">
</p>
<p>
提交:
<input type="submit" value="提交">
</p>
</form>
注:文件上传需在form表单写enctype属性(即编码方式)为"multipart/form-data"
2)控制器代码
public function upload(Request $request){
//接收数据
$file = $request->file('file');
// dump($file);
//进行文件上传, 此处上传到同级目录的upload目录下
if ($info = $file->move('./upload/')) {
// dump($info);
dump($info->getsaveName());
}else {
dump($info->getError());
}
}
注:需引入Request类 然后调用Request类的file方法!
多文件上传
1)页面代码
<form action="{:url('uploads')}" method="post" enctype="multipart/form-data">
<p>
File:
<input type="File" name="file[]" value="">
<input type="File" name="file[]" value="">
<input type="File" name="file[]" value="">
</p>
<p>
提交:
<input type="submit" value="提交">
</p>
</form>
与单文件上传的不同:使用了多个类型为file类型的input标签,并且name属性要修改成file[]!
2)控制器代码
public function uploads(Request $request){
//获取用户上传信息
$file = $request->file('file');
// dump($file);
//多文件处理
foreach ($file as $file) {
if($info = $file->move('./upload/')){
dump($info->getsaveName());
}else {
dump($info->getError);
}
}
}
与单文件上传不同:要用foreach语句遍历获取到的数据(因为多文件上传获取的数据是二维的),在循环中讲每个文件依次保存到文件夹中