ThinkPHP5——实现单(多)文件上传

本文详细介绍了单文件和多文件上传的实现方法,包括HTML表单设置、PHP控制器代码编写及文件处理流程,是学习文件上传技术的实用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单文件上传

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语句遍历获取到的数据(因为多文件上传获取的数据是二维的),在循环中讲每个文件依次保存到文件夹中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值