diff --git a/b0esche_cloud/lib/widgets/file_viewer_dispatch.dart b/b0esche_cloud/lib/widgets/file_viewer_dispatch.dart index 6b6778c..74e41ca 100644 --- a/b0esche_cloud/lib/widgets/file_viewer_dispatch.dart +++ b/b0esche_cloud/lib/widgets/file_viewer_dispatch.dart @@ -105,8 +105,8 @@ class FileViewerDispatch { ); } else if (mimeType.startsWith('image/')) { Widget child; - if (kIsWeb) { - // Use HTML img element for web to handle CORS + if (kIsWeb && token == null) { + // Use HTML img element for web public shares to handle CORS ui_web.platformViewRegistry.registerViewFactory(viewerId, (int viewId) { final imgElement = web.HTMLImageElement() ..src = url @@ -124,7 +124,7 @@ class FileViewerDispatch { child = HtmlElementView(viewType: viewerId); } else { - // For mobile, use Image.network + // For mobile or authenticated web, use Image.network with headers child = Image.network( url, headers: headers, diff --git a/go_cloud/api b/go_cloud/api index b82aeea..8ef8f49 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 f59023b..8b831f9 100644 --- a/go_cloud/internal/http/routes.go +++ b/go_cloud/internal/http/routes.go @@ -2952,7 +2952,10 @@ func publicFileShareHandler(w http.ResponseWriter, r *http.Request, db *database } else if r.TLS == nil { scheme = "http" } - host := "www.b0esche.cloud" + host := r.Host + if host == "" { + host = "go.b0esche.cloud" + } downloadPath := fmt.Sprintf("%s://%s/public/share/%s/download?token=%s", scheme, host, token, url.QueryEscape(viewerToken)) viewPath := fmt.Sprintf("%s://%s/public/share/%s/view?token=%s", scheme, host, token, url.QueryEscape(viewerToken))