请问PHP 不用return 如何给ajax返回json数据?

用TP5做上传图片,因为是多图片 ,所有放在了foreach里面遍历插进数据库
成功后返回数据给ajax ,但是因为是在循环中,用return 返回 程序就终止了,导致成功信息是返回了,但是数据只能插入一条,请问有什么好办法能代替这个return 吗?

代码如下:

public function upload(Request $request)
    {    
        if($files = $request->file('image')){
         $path = 'static/images/picture/';
         $model = new Db;
            foreach ($files as $file) {
                    $info = $file ->rule('uniqid')-> validate(['size'=>10240000,'ext'=>'bmp,gif,jgeg,png,jpg'])-> move($path);
                if($info){
                    $data = ['picture_name'=>$info->getSaveName(),'picture_link'=>"'".$path."'",'uptime'=>time()];
                    
                    $model::table('picture')->insert($data);
                    return $this::ajaxReturn(array('msg'=>'上传成功'));
                }else{
                    $data = $filev->getError();
                    return ajaxReturn(array('msg'=>$data));
                    exit;
                    
                }

            }
        }
    }
阅读 3k
3 个回答

你在foreach循环中,用了return 直接就中断了,当然只有一条,
把$info变量改成数组型式,每次的的上传结果保存在里面
在foreach 外,返回这个数组

return当前函数就终止了,你可以把上传信息存到变量中。foreach之后再调用呗。return当前函数就终止了,你可以把上传信息存到变量中。foreach之后再调用呗。

单次请求只会有一次响应,如果要有多次响应的效果 应该在JS做循环提交 或是做成长连接

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题