SlideController.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php
  2. namespace App\Http\Controllers\backend;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request;
  5. use App\Models\Slide;
  6. use Illuminate\Support\Facades\Storage;
  7. use App\Models\temporaryFile;
  8. class SlideController extends Controller
  9. {
  10. public function __construct(){
  11. return $this->middleware(['auth','verified']);
  12. }
  13. public function index()
  14. {
  15. $articles = Slide::paginate(5);
  16. return view('backend.slide.index',compact('articles'));
  17. }
  18. public function create(){
  19. return view('backend.slide.add');
  20. }
  21. public function store( Request $request){
  22. request()->validate([
  23. 'titre' => 'required',
  24. 'image' => 'required',
  25. ]);
  26. $tmp_file = temporaryFile::where('folder',$request->image)->first();
  27. if($tmp_file){
  28. Storage::copy('image/tmp/'.$tmp_file->folder.'/'.$tmp_file->file,'image/'.$tmp_file->folder.'/'.$tmp_file->file);
  29. Slide::create(
  30. [
  31. 'titre' => $request->titre,
  32. 'image' => $tmp_file->folder . '/' . $tmp_file->file,
  33. ],
  34. );
  35. Storage::deleteDirectory('image/tmp/'.$tmp_file->folder);
  36. $tmp_file->delete();
  37. }
  38. return redirect()->route('slides');
  39. }
  40. public function show($id){
  41. $article=Slide::find($id);
  42. return view('backend.slide.show',['article'=>$article]);
  43. }
  44. public function edit($id) {
  45. $article = Slide::find($id);
  46. return view('backend.slide.edit',['article'=>$article]);
  47. }
  48. public function update(Request $request, $id) {
  49. $article = Slide::find($id);
  50. $article->titre = $request->input('titre');
  51. $tmp_file = temporaryFile::where('folder',$request->image)->first();
  52. if($tmp_file){
  53. Storage::copy('image/tmp/'.$tmp_file->folder.'/'.$tmp_file->file,'image/'.$tmp_file->folder.'/'.$tmp_file->file);
  54. $article->update([
  55. "image" => $tmp_file->folder . '/' . $tmp_file->file
  56. ]);
  57. Storage::deleteDirectory('image/tmp/'.$tmp_file->folder);
  58. $tmp_file->delete();
  59. }
  60. $article->created_at = \Carbon\Carbon::now();
  61. $article->save();
  62. return redirect ()->route('slides')->with('success','Modifié');
  63. }
  64. public function destroy(Request $request, $id){
  65. $article = Slide::find($id);
  66. $article->delete();
  67. return back();
  68. }
  69. public function changeStatus(Request $request)
  70. {
  71. $article = Slide::find($request->Id);
  72. $article->etat = $request->etat;
  73. $article->save();
  74. return response()->json(['success'=>'Status change successfully.']);
  75. }
  76. public function fileUpload(Request $request){
  77. if($request->hasfile('image')){
  78. $image = $request->file('image');
  79. $file = $image->getClientOriginalName();
  80. $folder = uniqid('post', 'true');
  81. $image->storeAs('image/tmp/' . $folder, $file, 'public');
  82. TemporaryFile::create([
  83. 'folder' => $folder,
  84. 'file'=> $file
  85. ]);
  86. return $folder;
  87. }
  88. return '';
  89. }
  90. public function deleteUpload(){
  91. $tmp_file = TemporaryFile::where('folder',request()->getContent())->first();
  92. if($tmp_file){
  93. Storage::deleteDirectory('image/tmp/'.$tmp_file->folder);
  94. $tmp_file->delete();
  95. return response('');
  96. }
  97. }
  98. }