diff --git a/widgets/form/process.go b/widgets/form/process.go index beae5898..36f0c487 100644 --- a/widgets/form/process.go +++ b/widgets/form/process.go @@ -2,6 +2,7 @@ package form import ( "fmt" + "net/url" "strings" "github.com/yaoapp/gou" @@ -135,6 +136,12 @@ func processUpload(process *gou.Process) interface{} { exception.New(err.Error(), 500).Throw() } + if file, ok := res.(string); ok { + field := strings.TrimSuffix(xpath, ".edit.props") + file = fmt.Sprintf("/api/__yao/form/%s/download/%s?name=%s", form.ID, url.QueryEscape(field), file) + return file + } + return res } diff --git a/widgets/table/process.go b/widgets/table/process.go index 9db00f23..e32f811d 100644 --- a/widgets/table/process.go +++ b/widgets/table/process.go @@ -4,6 +4,7 @@ import ( "crypto/md5" "encoding/hex" "fmt" + "net/url" "os" "path/filepath" "strings" @@ -122,6 +123,12 @@ func processUpload(process *gou.Process) interface{} { exception.New(err.Error(), 500).Throw() } + if file, ok := res.(string); ok { + field := strings.TrimSuffix(xpath, ".edit.props") + file = fmt.Sprintf("/api/__yao/table/%s/download/%s?name=%s", tab.ID, url.QueryEscape(field), file) + return file + } + return res }