diff --git a/b0esche_cloud/lib/pages/public_file_viewer.dart b/b0esche_cloud/lib/pages/public_file_viewer.dart index 7bf640d..9bd9a86 100644 --- a/b0esche_cloud/lib/pages/public_file_viewer.dart +++ b/b0esche_cloud/lib/pages/public_file_viewer.dart @@ -125,6 +125,11 @@ class _PublicFileViewerState extends State { return mimeType.toString().startsWith('audio/'); } + bool _isImageFile() { + final mimeType = _fileData?['capabilities']?['mimeType'] ?? ''; + return mimeType.toString().startsWith('image/'); + } + bool _isPdfFile() { final mimeType = _fileData?['capabilities']?['mimeType'] ?? ''; return mimeType == 'application/pdf' || @@ -208,6 +213,16 @@ class _PublicFileViewerState extends State { fileName: _fileData!['fileName'], viewerId: 'public-audio-${widget.token.hashCode}', ); + } else if (_isImageFile()) { + return Expanded( + child: FileViewerDispatch.buildFileViewer( + context, + viewUrl, + _fileData?['capabilities']?['mimeType'], + fileName: _fileData!['fileName'], + viewerId: 'public-image-${widget.token.hashCode}', + ), + ); } else if (_isDocumentFile()) { if (kIsWeb) { // Use Collabora viewer for web diff --git a/go_cloud/api b/go_cloud/api index e3402d3..a61c831 100755 Binary files a/go_cloud/api and b/go_cloud/api differ diff --git a/go_cloud/internal/http/routes.go b/go_cloud/internal/http/routes.go index e93e291..3605eea 100644 --- a/go_cloud/internal/http/routes.go +++ b/go_cloud/internal/http/routes.go @@ -3006,7 +3006,7 @@ func publicFileShareHandler(w http.ResponseWriter, r *http.Request, db *database } // Set view URL for PDFs, videos, audio, and documents (for inline viewing) - if isPdf || strings.HasPrefix(mimeType, "video/") || strings.HasPrefix(mimeType, "audio/") { + if isPdf || strings.HasPrefix(mimeType, "video/") || strings.HasPrefix(mimeType, "audio/") || strings.HasPrefix(mimeType, "image/") { viewerSession["viewUrl"] = viewPath } else if strings.Contains(mimeType, "document") || strings.Contains(mimeType, "word") || strings.Contains(mimeType, "spreadsheet") || strings.Contains(mimeType, "presentation") { // Use Collabora for document viewing