| xqd
@@ -9,6 +9,8 @@ use Illuminate\Http\Request;
|
|
|
use App\Http\Requests;
|
|
|
use App\Http\Controllers\Controller;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
+use Illuminate\Support\Facades\Input;
|
|
|
+use Illuminate\Support\Facades\Storage;
|
|
|
use Maatwebsite\Excel\Facades\Excel;
|
|
|
|
|
|
class SqlController extends CommonController
|
| xqd
@@ -21,28 +23,33 @@ class SqlController extends CommonController
|
|
|
|
|
|
}
|
|
|
|
|
|
+ //备份导出sql为xls
|
|
|
public function backups(Request $request)
|
|
|
{
|
|
|
- //生成备份文件夹
|
|
|
+ //生成备份文件名
|
|
|
$excle_path = date('YmdHis');
|
|
|
|
|
|
- //数据库所有表
|
|
|
+ //数据库所有表名
|
|
|
$tables = DB::select('SHOW TABLES');
|
|
|
$tables = json_decode( json_encode( $tables),true);
|
|
|
$table_name = array();
|
|
|
foreach($tables as $k => $v){
|
|
|
$table_name[] = $v['Tables_in_zcju'];
|
|
|
}
|
|
|
- //循环查表导出为excle文件
|
|
|
- foreach($table_name as $value){
|
|
|
- $data = DB::table($value)->get();
|
|
|
- $data = json_decode( json_encode( $data),true);
|
|
|
- Excel::create($value,function($excle) use ($data){
|
|
|
- $excle->sheet('score',function($sheet) use ($data){
|
|
|
- $sheet->rows($data);
|
|
|
+ //循环查表导出excle文件
|
|
|
+
|
|
|
+ Excel::create($excle_path.'_'.$request->all()['name'],function($excle) use ($table_name){
|
|
|
+ foreach($table_name as $value){
|
|
|
+ $data = DB::table($value)->get();
|
|
|
+ $data = json_decode( json_encode( $data),true);
|
|
|
+
|
|
|
+ $excle->sheet($value,function($sheet) use ($data){
|
|
|
+ $sheet->fromArray($data);
|
|
|
});
|
|
|
- })->store('xls',storage_path('databases/'.$excle_path.'_'.$request->all()['name']));
|
|
|
- }
|
|
|
+ }
|
|
|
+ })->store('xls',storage_path('databases/'));
|
|
|
+
|
|
|
+
|
|
|
$this->mkFolder(storage_path('databases/'));
|
|
|
//存datas表
|
|
|
$input = $request->all();
|
| xqd
@@ -50,17 +57,39 @@ class SqlController extends CommonController
|
|
|
if(Data::create($input)){
|
|
|
return redirect('/sql');
|
|
|
}
|
|
|
- return 1;
|
|
|
+ return back();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ // 恢复备份 xls导入到数据库
|
|
|
public function recovery($id)
|
|
|
{
|
|
|
+ $tables = DB::select('SHOW TABLES');
|
|
|
+ $tables = json_decode( json_encode( $tables),true);
|
|
|
+ $table_name = array();
|
|
|
+ foreach($tables as $k => $v){
|
|
|
+ $table_name[] = $v['Tables_in_zcju'];
|
|
|
+ }
|
|
|
+
|
|
|
+ dump($table_name);
|
|
|
+ $path = Data::where('id','=',$id)->first()->path;
|
|
|
+ $filePath = 'storage/databases/'.$path.'/'.$table_name[1].'.xls';
|
|
|
+ Excel::load($filePath, function($reader) {
|
|
|
+ $data = $reader->toArray();
|
|
|
+ dd($data);
|
|
|
+ });
|
|
|
|
|
|
}
|
|
|
|
|
|
+ //导出xls 下载链接
|
|
|
public function download($id)
|
|
|
{
|
|
|
+ $header = array('Content-Type'=>'application/x-xls');
|
|
|
+ $path = Data::find($id)->path;
|
|
|
|
|
|
+ $file = storage_path('databases/'.$path.'.xls').Input::get('file');
|
|
|
+ $file_name = date('YmdHis').'.xls';
|
|
|
+ return response()->download($file,$file_name,$header);
|
|
|
}
|
|
|
|
|
|
// 修改文件夹权限
|
| xqd
@@ -76,3 +105,41 @@ class SqlController extends CommonController
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// public function backups(Request $request)
|
|
|
+// {
|
|
|
+// //生成备份文件夹
|
|
|
+// $excle_path = date('YmdHis');
|
|
|
+//
|
|
|
+// //数据库所有表名
|
|
|
+// $tables = DB::select('SHOW TABLES');
|
|
|
+// $tables = json_decode( json_encode( $tables),true);
|
|
|
+// $table_name = array();
|
|
|
+// foreach($tables as $k => $v){
|
|
|
+// $table_name[] = $v['Tables_in_zcju'];
|
|
|
+// }
|
|
|
+// //循环查表导出为excle文件
|
|
|
+// foreach($table_name as $value){
|
|
|
+// $data = DB::table($value)->get();
|
|
|
+// $data = json_decode( json_encode( $data),true);
|
|
|
+// Excel::create($value,function($excle) use ($data){
|
|
|
+// $excle->sheet('score',function($sheet) use ($data){
|
|
|
+// $sheet->fromArray($data);
|
|
|
+// });
|
|
|
+// })->store('xls',storage_path('databases/'.$excle_path.'_'.$request->all()['name']));
|
|
|
+// }
|
|
|
+//
|
|
|
+// $this->mkFolder(storage_path('databases/'));
|
|
|
+// //存datas表
|
|
|
+// $input = $request->all();
|
|
|
+// $input['path'] = $excle_path.'_'.$input['name'] ;
|
|
|
+// if(Data::create($input)){
|
|
|
+// return redirect('/sql');
|
|
|
+// }
|
|
|
+// return back();
|
|
|
+// }
|