links sollte nun die gesamte APP_URL enthalten

This commit is contained in:
2025-12-07 20:57:58 +01:00
parent 1975e26f94
commit 77e56b8758
3 changed files with 20 additions and 5 deletions

File diff suppressed because one or more lines are too long

View File

@@ -57,7 +57,8 @@ class SparkboothUploadController extends Controller
$gallery,
$file,
$base64Payload,
$request->input('filename')
$request->input('filename'),
$request
);
} catch (RuntimeException $exception) {
return $this->respondError($request, $exception->getMessage(), Response::HTTP_UNPROCESSABLE_ENTITY, $gallery);
@@ -177,7 +178,8 @@ class SparkboothUploadController extends Controller
Gallery $gallery,
?UploadedFile $file,
?string $base64Payload,
?string $preferredFilename
?string $preferredFilename,
Request $request
): array {
$directory = trim($gallery->images_path, '/');
@@ -192,7 +194,7 @@ class SparkboothUploadController extends Controller
$file->storeAs($directory, $filename, 'public');
return [$relativePath, asset('storage/'.$relativePath)];
return [$relativePath, $this->buildPublicUrl($relativePath, $request)];
}
if ($base64Payload === null) {
@@ -207,7 +209,7 @@ class SparkboothUploadController extends Controller
throw new RuntimeException('Failed to store uploaded image.');
}
return [$relativePath, asset('storage/'.$relativePath)];
return [$relativePath, $this->buildPublicUrl($relativePath, $request)];
}
/**
@@ -348,4 +350,13 @@ class SparkboothUploadController extends Controller
return '<?xml version="1.0" encoding="UTF-8"?><rsp status="fail">'.$errorAttr.'</rsp>';
}
private function buildPublicUrl(string $relativePath, Request $request): string
{
$relative = Str::start($relativePath, '/');
$root = config('app.url') ?: $request->getSchemeAndHttpHost();
return rtrim($root, '/').'/storage'.$relative;
}
}

View File

@@ -42,6 +42,8 @@ class SparkboothUploadTest extends TestCase
])
->assertJsonStructure(['url']);
$this->assertStringContainsString('/storage/uploads/test/', $response->json('url'));
$image = Image::first();
$this->assertNotNull($image);
$this->assertSame($gallery->id, $image->gallery_id);
@@ -107,6 +109,8 @@ class SparkboothUploadTest extends TestCase
])
->assertJsonStructure(['url']);
$this->assertStringContainsString('/storage/uploads/base64/', $response->json('url'));
Storage::disk('public')->assertExists('uploads/base64/custom.png');
$this->assertDatabaseHas('images', [