php3.2 之文件上传,多文件上传

public function upload(){
    $upload = new \Think\Upload();// 实例化上传类
    $upload->maxSize   =     3145728 ;// 设置附件上传大小
    $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
    $upload->rootPath  =      './Uploads/'; // 设置附件上传根目录
    $upload->savePath  =      'slider/'; // 设置附件上传(子)目录
    // 上传单个文件 
    $info   =   $upload->uploadOne($_FILES['files']);
    if(!$info) {// 上传错误提示错误信息
        $this->error($upload->getError());
    }else{// 上传成功 获取上传文件信息
        $url= $info['savepath'].$info['savename'];
    }
    return $url;

}

这个是单文件上传的时候源码,其中的 $info   =   $upload->uploadOne($_FILES['files']);这个位置限制住了文件上传是单文件

还有就是前端的input选择的问题

public function upload(){
    $upload = new \Think\Upload();// 实例化上传类
    $upload->maxSize   =     3145728 ;// 设置附件上传大小
    $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
    $upload->rootPath  =      './Uploads/'; // 设置附件上传根目录
    $upload->savePath  =      'last/'; // 设置附件上传(子)目录
    // 上传多个文件 
    $info   =   $upload->upload();
if(!$info) {// 上传错误提示错误信息
    $this->error($upload->getError());
}else{// 上传成功 获取上传文件信息
    foreach($info as $file){
        $url .= $file['savepath'].$file['savename'].',';
    }
}
    return $url;

}

这个是多文件上传的方法主要的区别在于$info   =   $upload->upload();这个部位

以及$url .= $file['savepath'].$file['savename'].',';这部分的限制

前端的单文件,多文件区别也是很大的

这个是多文件的区别

 <input type="file" name="files[]" multiple="">

官方的解释

如果需要使用多个文件上传,只需要修改表单,把

 
  1. <input type='file' name='photo'>

改为

 
  1. <input type='file' name='photo1'>
  2. <input type='file' name='photo2'>
  3. <input type='file' name='photo3'>

或者

 
  1. <input type='file' name='photo[]'>
  2. <input type='file' name='photo[]'>
  3. <input type='file' name='photo[]'>

两种方式的多附件上传系统的文件上传类都可以自动识别。

多文件上传的时候

还有一个问题是区分出来1,2,3.。。。n个input

//获取商品图片路径和详情图片路径
        $str = $this->upload();
        $count1 = count($_FILES['files1']['name']);//获取商品图片上传个数
        $arr = explode(',',$str);
        $slider = '';
        $detail = '';
        foreach ($arr as $k=>$v){
            if($k+1<$count1){
                $slider .= $v.',';
            }else{
                $detail .= $v.',';
            }
        }
        $slider = rtrim($slider,',');
        $detail = rtrim($detail,',');


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值