builder(); } public function payment(Request $request) { return $this->builder(); } public function sms(Request $request) { return $this->tabsBuilder(); } public function upload(Request $request) { $request = request(); if ($request->method() === 'POST') { $D = $request->post(); $config = []; $config['default'] = $D['default']; $config['max_size'] = (int)$D['max_size']; $config['storage']['public']['url'] = $D['public']['url']; $config['storage']['local']['url'] = $D['local']['url']; foreach ($D['ftp'] as $key => $value) { $config['storage']['ftp'][$key] = $value; } foreach ($D['s3'] as $key => $value) { if (in_array($key, ['key', 'secret'])) { $config['storage']['s3']['credentials'][$key] = $value; } else { $config['storage']['s3'][$key] = $value; } } foreach ($D['minio'] as $key => $value) { if (in_array($key, ['key', 'secret'])) { $config['storage']['minio']['credentials'][$key] = $value; } else { $config['storage']['minio'][$key] = $value; } } foreach ($D['oss'] as $key => $value) { $config['storage']['oss'][$key] = $value; } foreach ($D['qiniu'] as $key => $value) { $config['storage']['qiniu'][$key] = $value; } foreach ($D['cos'] as $key => $value) { $config['storage']['cos'][$key] = $value; } $content = json_encode($config, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); $user = config_path("plugin/shopwwi/filesystem/app.json"); $res = file_put_contents($user, $content); if ($res) { return $this->success('保存成功,重启服务生效'); } return $this->fail('保存失败'); } $config = config('plugin.shopwwi.filesystem.app'); $builder = new FormBuilder(null, null, [ 'translations'=>true, 'submitEvent' => SubmitEvent::SILENT ]); $defaultOptions = Filesystem::getOptions(); $builder->add('default', '默认存储渠道商', 'select', $config['default'], [ 'options' => $defaultOptions ]); $builder->add('max_size', '单个文件大小(字节)', 'input-number', $config['max_size'], [ 'props' => [ 'min' => 0, 'controls' => false, 'style' => [ 'width' => '200px' ] ] ]); $Component = new ComponentBuilder; $subBuilder = new FormBuilder('public', '本地存储(外部)'); $subBuilder->add('url', '静态文件访问域名', 'input', $config['storage']['public']['url'], [ 'prompt' => [ $Component->add('text', ['default' => '对外访问域名,不以斜杠结尾'], ['type' => 'info', 'size' => 'small']) ->builder() ], 'props' => [ 'placeholder' => 'http://static.example.com' ] ]); $builder->addGroupForm($subBuilder); $subBuilder = new FormBuilder('local', '本地存储(内部)'); $subBuilder->add('url', '静态文件访问域名', 'input', $config['storage']['local']['url'], [ 'prompt' => [ $Component->add('text', ['default' => '对外访问域名,不以斜杠结尾'], ['type' => 'info', 'size' => 'small']) ->builder() ], 'props' => [ 'placeholder' => 'http://static.example.com' ] ]); $builder->addGroupForm($subBuilder); $subBuilder = new FormBuilder('ftp', 'FTP存储'); $subBuilder->add('host', 'HOST', 'input', $config['storage']['ftp']['host']); $subBuilder->add('username', 'UserName', 'input', $config['storage']['ftp']['username']); $subBuilder->add('password', 'Password', 'input', $config['storage']['ftp']['password']); $subBuilder->add('port', 'Port', 'input', $config['storage']['ftp']['port']); $subBuilder->add('root', '目录', 'input', $config['storage']['ftp']['root']); $subBuilder->add('passive', '被动模式', 'switch', $config['storage']['ftp']['passive']); $subBuilder->add('ssl', 'SSL', 'switch', $config['storage']['ftp']['ssl']); $subBuilder->add('timeout', '超时', 'input-number', $config['storage']['ftp']['timeout']); $subBuilder->add('url', '静态文件访问域名', 'input', $config['storage']['ftp']['url'], [ 'prompt' => [ $Component->add('text', ['default' => '对外访问域名,不以斜杠结尾'], ['type' => 'info', 'size' => 'small']) ->builder() ], 'props' => [ 'placeholder' => 'http://static.example.com' ] ]); $builder->addGroupForm($subBuilder); $subBuilder = new FormBuilder('s3', 'S3存储'); $subBuilder->add('key', 'KEY', 'input', $config['storage']['s3']['credentials']['key']); $subBuilder->add('secret', 'Secret', 'input', $config['storage']['s3']['credentials']['secret']); $subBuilder->add('region', 'Region', 'input', $config['storage']['s3']['region']); $subBuilder->add('version', 'Version', 'input', $config['storage']['s3']['version']); $subBuilder->add('bucket_endpoint', 'Bucket Endpoint', 'switch', $config['storage']['s3']['bucket_endpoint']); $subBuilder->add('use_path_style_endpoint', 'Use path style endpoint', 'switch', $config['storage']['s3']['use_path_style_endpoint']); $subBuilder->add('endpoint', 'Endpoint', 'input', $config['storage']['s3']['endpoint']); $subBuilder->add('bucket_name', 'Bucket Name', 'input', $config['storage']['s3']['bucket_name']); $subBuilder->add('url', '静态文件访问域名', 'input', $config['storage']['s3']['url'], [ 'prompt' => [ $Component->add('text', ['default' => '对外访问域名,不以斜杠结尾'], ['type' => 'info', 'size' => 'small']) ->builder() ], 'props' => [ 'placeholder' => 'http://static.example.com' ] ]); $builder->addGroupForm($subBuilder); $subBuilder = new FormBuilder('minio', 'Minio存储'); $subBuilder->add('key', 'KEY', 'input', $config['storage']['minio']['credentials']['key']); $subBuilder->add('secret', 'Secret', 'input', $config['storage']['minio']['credentials']['secret']); $subBuilder->add('region', 'Region', 'input', $config['storage']['minio']['region']); $subBuilder->add('version', 'Version', 'input', $config['storage']['minio']['version']); $subBuilder->add('bucket_endpoint', 'Bucket Endpoint', 'switch', $config['storage']['minio']['bucket_endpoint']); $subBuilder->add('use_path_style_endpoint', 'Use path style endpoint', 'switch', $config['storage']['minio']['use_path_style_endpoint']); $subBuilder->add('endpoint', 'Endpoint', 'input', $config['storage']['minio']['endpoint']); $subBuilder->add('bucket_name', 'Bucket Name', 'input', $config['storage']['minio']['bucket_name']); $subBuilder->add('url', '静态文件访问域名', 'input', $config['storage']['minio']['url'], [ 'prompt' => [ $Component->add('text', ['default' => '对外访问域名,不以斜杠结尾'], ['type' => 'info', 'size' => 'small']) ->builder() ], 'props' => [ 'placeholder' => 'http://static.example.com' ] ]); $builder->addGroupForm($subBuilder); $subBuilder = new FormBuilder('oss', '阿里云存储'); $subBuilder->add('accessId', 'AccessId', 'input', $config['storage']['oss']['accessId']); $subBuilder->add('accessSecret', 'AccessSecret', 'input', $config['storage']['oss']['accessSecret']); $subBuilder->add('bucket', 'Bucket', 'input', $config['storage']['oss']['bucket']); $subBuilder->add('endpoint', 'Bucket域名', 'input', $config['storage']['oss']['endpoint']); $subBuilder->add('isCName', '私有空间', 'switch', $config['storage']['oss']['isCName']); $subBuilder->add('url', '静态文件访问域名', 'input', $config['storage']['oss']['url'], [ 'prompt' => [ $Component->add('text', ['default' => '对外访问域名,不以斜杠结尾'], ['type' => 'info', 'size' => 'small']) ->builder() ], 'props' => [ 'placeholder' => 'http://static.example.com' ] ]); $builder->addGroupForm($subBuilder); $subBuilder = new FormBuilder('qiniu', '七牛存储'); $subBuilder->add('accessKey', 'AccessKey', 'input', $config['storage']['qiniu']['accessKey']); $subBuilder->add('secretKey', 'SecretKey', 'input', $config['storage']['qiniu']['secretKey']); $subBuilder->add('bucket', 'Bucket', 'input', $config['storage']['qiniu']['bucket']); $subBuilder->add('domain', 'Domain', 'input', $config['storage']['qiniu']['domain']); $subBuilder->add('url', '静态文件访问域名', 'input', $config['storage']['qiniu']['url'], [ 'prompt' => [ $Component->add('text', ['default' => '对外访问域名,不以斜杠结尾'], ['type' => 'info', 'size' => 'small']) ->builder() ], 'props' => [ 'placeholder' => 'http://static.example.com' ] ]); $builder->addGroupForm($subBuilder); $subBuilder = new FormBuilder('cos', '腾讯云存储'); $subBuilder->add('app_id', 'Appid', 'input', $config['storage']['cos']['app_id']); $subBuilder->add('secret_id', 'SecretId', 'input', $config['storage']['cos']['secret_id']); $subBuilder->add('secret_key', 'SecretKey', 'input', $config['storage']['cos']['secret_key']); $subBuilder->add('region', 'Region', 'input', $config['storage']['cos']['region']); $subBuilder->add('bucket', 'Bucket', 'input', $config['storage']['cos']['bucket']); $subBuilder->add('read_from_cdn', '从CDN读取', 'switch', $config['storage']['cos']['read_from_cdn']); $subBuilder->add('signed_url', '私有空间', 'switch', $config['storage']['cos']['signed_url']); $subBuilder->add('url', '静态文件访问域名', 'input', $config['storage']['cos']['url'], [ 'prompt' => [ $Component->add('text', ['default' => '对外访问域名,不以斜杠结尾'], ['type' => 'info', 'size' => 'small']) ->builder() ], 'props' => [ 'placeholder' => 'http://static.example.com' ] ]); $builder->addGroupForm($subBuilder); return $this->resData($builder); } }