formatDate()); $disk = Storage::disk('public'); if (! $disk->exists($path)) { $disk->makeDirectory($path); $disk->makeDirectory($path.'/thumb'); } return $path; } public function store(Request $request) { $uploaded = $request->file('file'); if (! $uploaded || ! $uploaded->isValid()) { return response()->json(['message' => 'فایل بارگذاری نشد یا خالی است'], 422); } if ($uploaded->getSize() < 1) { return response()->json(['message' => 'فایل خالی است'], 422); } $path = $this->createDir(); $originalName = $uploaded->getClientOriginalName(); $ext = $uploaded->getClientOriginalExtension() ?: $uploaded->extension() ?: 'jpg'; $title = $request->input('title') ?: $originalName; $file_name_src = md5(time().$originalName); $file_name = $file_name_src.'.'.$ext; $stored = Storage::disk('public')->putFileAs($path, $uploaded, $file_name); if (! $stored || ! Storage::disk('public')->exists($stored)) { return response()->json(['message' => 'ذخیره فایل روی سرور ناموفق بود'], 500); } $relativePath = 'storage/'.$stored; $file_create = File::create([ 'original_name' => $originalName, 'ext' => $ext, 'title' => $title, 'has_thumb' => false, 'size' => $uploaded->getSize(), 'src' => $relativePath, 'user_id' => auth()->id(), ]); $fullSrc = File::publicUrl($relativePath); $payload = $file_create->fresh()->toArray(); $payload['path'] = $relativePath; $payload['full_src'] = $fullSrc; $payload['src'] = $fullSrc; return response()->json($payload); } }