laravel中获取上传文件,里面的内容

786 阅读1分钟
public function import(Request $request)
{
    //获取文件上传的内容
    $file = file_get_contents($request->file('myfile'));
    //处理中文乱码的问题
    $json = iconv("gb2312", "utf-8//IGNORE", $file);
    //json转成 array
    $arrs = json_decode($json, true);
    $classes = School::find($request->school_id)->classes->pluck('grade_name', 'id');
    foreach ($arrs as $k => $arr) {
        foreach ($classes as $kk => $clazz) {
            if ($k == $clazz) {
                collect($arr)->flatMap(function ($array) use ($kk) {
                    collect($array)->map(function ($ar) use ($kk) {
                        $classTeacher = ClassTeacher::where(['class_id' => $kk, 'is_main' => 1])->first();
                        $userId = Teacher::find($classTeacher->teacher_id)->first()->user_id;
                        $moment = Moment::create([
                            'user_id'  => $userId,
                            'class_id' => $kk,
                            'body'     => $ar['content'],
                        ]);
                        collect($ar['imgs'])->map(function ($img) use ($moment) {
                            MomentResource::create([
                                'moment_id' => $moment->id,
                                'type'      => 1,
                                'res_url'   => $img
                            ]);
                        });

                    });
                });
            }
        }
    }
    return $this->apiResponse('上传成功',Code::R_OK);
}