SettingController.php
3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
namespace App\Http\Controllers\V1;
use App\Http\Controllers\Controller;
use App\Models\Setting;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
use Jiannei\Response\Laravel\Support\Facades\Response;
class SettingController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\JsonResponse
*/
public function index()
{
if ($this->getClientTerminal() == 'ios'){
$terminal = 2;
}else{
$terminal = 1;
}
$array = [];
$settings = Setting::query()->where('terminal','=', $terminal)
->where('version', '=',Setting::CURRENT_VERSION)
->get();
foreach ($settings as $setting){
$coneten = json_decode($setting->content,true);
$array[$setting->keyword] = $coneten;
}
return Response::success($array);
}
public function uploadImage(Request $request)
{
$validator = Validator::make($request->all(),[
'image' => 'required|mimes:jpeg,png,bmp,gif'
]);
if ($validator->fails()){
return Response::fail('',500,$validator->errors());
}
$hashName = $request->file('image')->hashName();
$hash_hex = md5($hashName);
// 16进制表示的字符串一共32字节,表示16个二进制字节。
// 前16个字符用来第一级求摸,后16个用做第二级
$hash_hex_l1 = substr($hash_hex, 0, 8);
$hash_hex_l2 = substr($hash_hex, 8, 8);
$dir_l1 = hexdec($hash_hex_l1) % 256;
$dir_l2 = hexdec($hash_hex_l2) % 512;
$dir = 'uploads/'. $dir_l1. '/' . $dir_l2;
if( !Storage::disk('public')->exists($dir)) Storage::disk('public')->makeDirectory($dir);
$file = $request->file('image')->store($dir,'public');
return Response::success([
'relative_path' => $file,
'absolute_path' => Storage::disk('public')->url($file),
]);
}
public function uploadVideo(Request $request)
{
$validator = Validator::make($request->all(),[
'video' => 'required|mimes:mp4,flv,mov,avi'
]);
if ($validator->fails()){
return Response::fail('',500,$validator->errors());
}
$hashName = $request->file('video')->hashName();
$hash_hex = md5($hashName);
// 16进制表示的字符串一共32字节,表示16个二进制字节。
// 前16个字符用来第一级求摸,后16个用做第二级
$hash_hex_l1 = substr($hash_hex, 0, 8);
$hash_hex_l2 = substr($hash_hex, 8, 8);
$dir_l1 = hexdec($hash_hex_l1) % 256;
$dir_l2 = hexdec($hash_hex_l2) % 512;
$dir = 'uploads/'. $dir_l1. '/' . $dir_l2;
if( !Storage::disk('public')->exists($dir)) Storage::disk('public')->makeDirectory($dir);
$file = $request->file('video')->store($dir,'public');
return Response::success([
'relative_path' => $file,
'absolute_path' => Storage::disk('public')->url($file),
]);
}
}