diff --git a/routers/modelapp/desensitization.go b/routers/modelapp/desensitization.go index 8cdc744cf..9de33526e 100644 --- a/routers/modelapp/desensitization.go +++ b/routers/modelapp/desensitization.go @@ -2,9 +2,11 @@ package modelapp import ( "bytes" + "code.gitea.io/gitea/models" "crypto/tls" "image" "image/png" + "net/http" "strconv" "code.gitea.io/gitea/modules/setting" @@ -17,7 +19,7 @@ import ( var restyClient *resty.Client var tplExploreUpload base.TplName = "model/tuomin/upload" -var uploadUrl string = "/extension/tuomin/upload" +var uploadUrl = "/extension/tuomin/upload" var allowedContentType = []string{"image/jpeg", "image/jpg", "image/png"} func ProcessImageUI(ctx *context.Context) { @@ -28,8 +30,7 @@ func ProcessImage(ctx *context.Context) { file, header, err := ctx.GetFile("file") if err != nil { - ctx.Flash.Error(ctx.Tr("model_app.get_file_fail")) - ctx.Redirect(setting.AppSubURL + uploadUrl) + ctx.JSON(http.StatusBadRequest,models.BaseErrorMessage(ctx.Tr("model_app.get_file_fail"))) return } defer file.Close() @@ -37,8 +38,7 @@ func ProcessImage(ctx *context.Context) { contentType := header.Header.Get("Content-Type") if !isInAllowedContentType(contentType) { - ctx.Flash.Error(ctx.Tr("model_app.content_type_unsupported")) - ctx.Redirect(setting.AppSubURL + uploadUrl) + ctx.JSON(http.StatusBadRequest,models.BaseErrorMessage(ctx.Tr("model_app.content_type_unsupported"))) return } @@ -46,14 +46,12 @@ func ProcessImage(ctx *context.Context) { res, err := client.R().SetMultipartField( "file", header.Filename, contentType, file).Post(setting.ModelApp.DesensitizationUrl + "?mode=" + strconv.Itoa(ctx.QueryInt("mode"))) if err != nil { - ctx.Flash.Error(ctx.Tr("model_app.process_image_fail")) - ctx.Redirect(setting.AppSubURL + uploadUrl) + ctx.JSON(http.StatusBadRequest,models.BaseErrorMessage(ctx.Tr("model_app.process_image_fail"))) return } image, _, err := image.Decode(bytes.NewReader(res.Body())) if err != nil { - ctx.Flash.Error(ctx.Tr("model_app.process_image_fail")) - ctx.Redirect(setting.AppSubURL + uploadUrl) + ctx.JSON(http.StatusBadRequest,models.BaseErrorMessage(ctx.Tr("model_app.process_image_fail"))) return } diff --git a/web_src/vuepages/pages/model/tuomin/index.vue b/web_src/vuepages/pages/model/tuomin/index.vue index 65a27ead3..7ba55165c 100644 --- a/web_src/vuepages/pages/model/tuomin/index.vue +++ b/web_src/vuepages/pages/model/tuomin/index.vue @@ -184,11 +184,32 @@ this.tranformImageLoading = false }).catch(err => { console.log(err); - this.tranformImageLoading = false + + this.tranformImageLoading = false; + if (err.response.status === 400) { + const fr = new FileReader(); + fr.onload = (e) => { + try { + const jsonResult = JSON.parse(e.target.result); + this.$message({ + type: 'error', + message: jsonResult.Message + }); + } catch (e) { + this.$message({ + type: 'error', + message: this.$t('tranformImageFailed') + }); + } + }; + fr.readAsText(err.response.data); + }else{ + this.$message({ type: 'error', message: this.$t('tranformImageFailed') }); + } }) },