diff --git a/service/explorer/file.go b/service/explorer/file.go index 177e46d652..1c9d870dcc 100644 --- a/service/explorer/file.go +++ b/service/explorer/file.go @@ -227,8 +227,14 @@ func (service *FileIDService) CreateDocPreviewSession(ctx context.Context, c *gi return serializer.Err(serializer.CodeNotSet, err.Error(), err) } + // For newer version of Cloudreve - Local Policy + // When do not use a cdn, the downloadURL withouts hosts, like "/api/v3/file/download/xxx" if strings.HasPrefix(downloadURL, "/") { - downloadURL = path.Join(model.GetSiteURL().String(), downloadURL) + downloadURI, err := url.Parse(downloadURL) + if err != nil { + return serializer.Err(serializer.CodeNotSet, err.Error(), err) + } + downloadURL = model.GetSiteURL().ResolveReference(downloadURI).String() } var resp serializer.DocPreviewSession