在上传商品图片时foreach循环参数出错

来源:8-2 商品添加操作(图片使用七牛上传)

阿陆耀闪闪i

2017-04-14

在上传商品图片时foreach循环参数出错,查看$_FILE里面pics的临时文件名和cover的临时文件名一样,并且pics只有最后一个文件加入到$_FILE提交

http://szimg.mukewang.com/58f0471800017d6404940116.jpg

http://szimg.mukewang.com/58f04718000159bc07790182.jpg

private function upload(){
        if($_FILES['Product']['error']['cover'] > 0){
            return false;
        }
        $qiniu = new Qiniu(Product::AK, Product::SK, Product::DOMAIN, Product::BUCKET);
        $key = uniqid();
        $qiniu->uploadFile($_FILES['Product']['tmp_name']['cover'],$key);
        $cover = $qiniu->getLink($key);
        $pics = [];
        foreach($_FILES['Product']['tmp_name']['pics'] as $k => $file){
            if($_FILES['Product']['error']['pics'][$k] > 0){
                continue;
            }
            $key = uniqid();
            $qiniu->uploadFile($file,$key);
            $pics[$key] = $qiniu->getLink($key);
        }
        return ['cover' => $cover, 'pics' => json_encode($pics)];
    }

写回答

5回答

Jason

2017-04-14

恩,好的

0
0

Jason

2017-04-14

按照你目前的写法,cover和pics的临时文件名称不该是一样的,仔细检查下,把数组打印出来看看,多个图片只有一个会上传,是因为你的pics不是数组形式,只会拿到最后一个,名称那里把pics改成pics[]

0
0

提阿斯

2017-04-14

老师我想请问一下你,当一个控制器继承了一个common验登录的方法,当没有登录时,如果子控制器里面没有登录时的session['uid'] 为空,那么我下面要用到这个uid的可能数据就空,然后就会有报错,不是说好的先执行init直接跳登录的嘛,请问这种问题怎么解决呢,

0
1
Jason
是的,你的init方法是写在common里面了吗?
2017-04-14
共1条回复

阿陆耀闪闪i

提问者

2017-04-14

问题解决了老师 非常感谢您

0
0

阿陆耀闪闪i

提问者

2017-04-14

打印了$_FILE 不知道还应该看哪里的数据了  我认为是前端代码的问题 是不是应该在前端inputFile那里将pics改成pics[] 我审查元素看了一下是Product['pics'] 该怎样将pics弄成数组呢?还有 现在$_FILE里面tmp_name确实是一样的 老师您看一下

//szimg.mukewang.com/58f04c6100011aef07720118.jpg

//szimg.mukewang.com/58f04c6100011acc07010485.jpg


0
0

Yii2.0开发一个仿京东商城平台

【毕设】购物、下单、支付、收货...各功能模块开发,打造京东式电商平台

1543 学习 · 655 问题

查看课程