added the cropping library
This commit is contained in:
1 parent
7a18eb6588
commit
2ee4b76599
4 files changed
+66
-40
No files matched your search
@@ -474,46 +474,51 @@ class FamilyController extends Controller
|
||||
public function uploadFamilyMemberPicture(Request $request, $id)
|
||||
{
|
||||
$request->validate([
|
||||
'image' => 'required|image|mimes:jpeg,png,jpg,gif|max:5120', // 5MB max
|
||||
'image' => 'required',
|
||||
'folder' => 'required|string',
|
||||
'filename' => 'required|string',
|
||||
]);
|
||||
|
||||
$user = Auth::user();
|
||||
try {
|
||||
$user = Auth::user();
|
||||
|
||||
// Verify the family member belongs to the authenticated user
|
||||
$relationship = UserRelationship::where('guardian_user_id', $user->id)
|
||||
->where('dependent_user_id', $id)
|
||||
->firstOrFail();
|
||||
// Verify the family member belongs to the authenticated user
|
||||
$relationship = UserRelationship::where('guardian_user_id', $user->id)
|
||||
->where('dependent_user_id', $id)
|
||||
->firstOrFail();
|
||||
|
||||
$familyMember = User::findOrFail($id);
|
||||
$familyMember = User::findOrFail($id);
|
||||
|
||||
if ($request->hasFile('image')) {
|
||||
$image = $request->file('image');
|
||||
// Handle base64 image from cropper
|
||||
$imageData = $request->image;
|
||||
$imageParts = explode(";base64,", $imageData);
|
||||
$imageTypeAux = explode("image/", $imageParts[0]);
|
||||
$extension = $imageTypeAux[1];
|
||||
$imageBinary = base64_decode($imageParts[1]);
|
||||
|
||||
// Generate unique filename
|
||||
$filename = 'profile_' . $familyMember->id . '_' . time() . '.' . $image->getClientOriginalExtension();
|
||||
|
||||
// Store in public/images/profiles
|
||||
$path = $image->storeAs('images/profiles', $filename, 'public');
|
||||
$folder = trim($request->folder, '/');
|
||||
$fileName = $request->filename . '.' . $extension;
|
||||
$fullPath = $folder . '/' . $fileName;
|
||||
|
||||
// Delete old profile picture if exists
|
||||
if ($familyMember->profile_picture && \Storage::disk('public')->exists($familyMember->profile_picture)) {
|
||||
\Storage::disk('public')->delete($familyMember->profile_picture);
|
||||
}
|
||||
|
||||
// Update family member
|
||||
$familyMember->update(['profile_picture' => $path]);
|
||||
// Store in the public disk (storage/app/public)
|
||||
\Storage::disk('public')->put($fullPath, $imageBinary);
|
||||
|
||||
// Update family member's profile_picture field
|
||||
$familyMember->update(['profile_picture' => $fullPath]);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Profile picture uploaded successfully.',
|
||||
'path' => $path,
|
||||
'path' => $fullPath,
|
||||
'url' => asset('storage/' . $fullPath)
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json(['success' => false, 'message' => $e->getMessage()], 500);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'No image file provided.',
|
||||
], 400);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user