*/
protected function streamedDownloadResponse($stream, string $fileName): StreamedResponse
{
- return response()->stream(function() use ($stream) {
- // End & flush the output buffer otherwise we still seem to use memory.
+ return response()->stream(function () use ($stream) {
+
+ // End & flush the output buffer, if we're in one, otherwise we still use memory.
+ // Output buffer may or may not exist depending on PHP `output_buffering` setting.
// Ignore in testing since output buffers are used to gather a response.
- if (!app()->runningUnitTests()) {
+ if (!empty(ob_get_status()) && !app()->runningUnitTests()) {
ob_end_clean();
}
$sniffContent = fread($stream, 1000);
$mime = (new WebSafeMimeSniffer())->sniff($sniffContent);
- return response()->stream(function() use ($sniffContent, $stream) {
- echo $sniffContent;
- fpassthru($stream);
- fclose($stream);
+ return response()->stream(function () use ($sniffContent, $stream) {
+ echo $sniffContent;
+ fpassthru($stream);
+ fclose($stream);
}, 200, [
'Content-Type' => $mime,
'Content-Disposition' => 'inline; filename="' . str_replace('"', '', $fileName) . '"',
*/
protected function getImageValidationRules(): array
{
- return ['image_extension', 'mimes:jpeg,png,gif,webp', 'max:' . (config('app.upload_limit') * 1000)];
+ return ['image_extension', 'mimes:jpeg,png,gif,webp,svg', 'max:' . (config('app.upload_limit') * 1000)];
}
}