fix(测试跟踪): 缺陷用例附件本地上传时, Content-Type报错问题
This commit is contained in:
parent
8b31d6a178
commit
989c8598bc
|
@ -1,7 +1,7 @@
|
|||
import axios from 'axios'
|
||||
import {$error} from "./message"
|
||||
import {getCurrentProjectID, getCurrentWorkspaceId} from "../utils/token";
|
||||
import {PROJECT_ID, TokenKey, WORKSPACE_ID, TASK_PATH, TASK_DATA} from "../utils/constants";
|
||||
import {PROJECT_ID, TASK_PATH, TokenKey, WORKSPACE_ID} from "../utils/constants";
|
||||
import packageJSON from '@/../package.json'
|
||||
import {getUrlParams, getUUID} from "../utils";
|
||||
import {initTaskData} from "../api/novice";
|
||||
|
@ -184,12 +184,12 @@ export function fileUploadWithProcessAndCancel(url, file, param, CancelTokenObj,
|
|||
if (file) {
|
||||
formData.append("file", file);
|
||||
}
|
||||
formData.append('request', new Blob([JSON.stringify(param)], {type: "application/json"}));
|
||||
formData.append('sourceId', param);
|
||||
let axiosRequestConfig = {
|
||||
method: 'POST',
|
||||
url: url,
|
||||
data: formData,
|
||||
headers: {'Content-Type': 'application/json;charset=UTF-8'},
|
||||
headers: {'Content-Type': 'multipart/form-data'},
|
||||
cancelToken: new CancelTokenObj(function executor(c) {
|
||||
cancelFileTokenList.push({"name": file.name, "cancelFunc": c});
|
||||
}),
|
||||
|
|
|
@ -10,8 +10,9 @@ import io.metersphere.i18n.Translator;
|
|||
import io.metersphere.log.annotation.MsAuditLog;
|
||||
import io.metersphere.metadata.service.FileMetadataService;
|
||||
import io.metersphere.request.attachment.AttachmentDumpRequest;
|
||||
import io.metersphere.xpack.track.dto.AttachmentRequest;
|
||||
import io.metersphere.service.AttachmentService;
|
||||
import io.metersphere.xpack.track.dto.AttachmentRequest;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.shiro.authz.annotation.Logical;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
|
@ -20,7 +21,6 @@ import org.springframework.http.ResponseEntity;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import jakarta.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -39,14 +39,20 @@ public class AttachmentController {
|
|||
@MsAuditLog(module = OperLogModule.TRACK_BUG, type = OperLogConstants.UPDATE, content = "#msClass.getLogDetails(#request.belongId, #request.belongType, #file.getOriginalFilename(), false)", msClass = AttachmentService.class)
|
||||
@PostMapping(value = "/issue/upload", consumes = {"multipart/form-data"})
|
||||
@RequiresPermissions(PermissionConstants.PROJECT_TRACK_ISSUE_READ_EDIT)
|
||||
public void uploadIssueAttachment(@RequestPart("request") AttachmentRequest request, @RequestPart(value = "file", required = false) MultipartFile file) {
|
||||
public void uploadIssueAttachment(@RequestParam(value = "sourceId") String belongId, @RequestParam(value = "file") MultipartFile file) {
|
||||
AttachmentRequest request = new AttachmentRequest();
|
||||
request.setBelongId(belongId);
|
||||
request.setBelongType(AttachmentType.ISSUE.type());
|
||||
attachmentService.uploadAttachment(request, file);
|
||||
}
|
||||
|
||||
@MsAuditLog(module = OperLogModule.TRACK_TEST_CASE, type = OperLogConstants.UPDATE, content = "#msClass.getLogDetails(#request.belongId, #request.belongType, #file.getOriginalFilename(), false)", msClass = AttachmentService.class)
|
||||
@PostMapping(value = "/testcase/upload", consumes = {"multipart/form-data"})
|
||||
@RequiresPermissions(PermissionConstants.PROJECT_TRACK_CASE_READ_EDIT)
|
||||
public void uploadTestCaseAttachment(@RequestPart("request") AttachmentRequest request, @RequestPart(value = "file", required = false) MultipartFile file) {
|
||||
public void uploadTestCaseAttachment(@RequestParam(value = "sourceId") String belongId, @RequestParam(value = "file") MultipartFile file) {
|
||||
AttachmentRequest request = new AttachmentRequest();
|
||||
request.setBelongId(belongId);
|
||||
request.setBelongType(AttachmentType.TEST_CASE.type());
|
||||
attachmentService.uploadAttachment(request, file);
|
||||
}
|
||||
|
||||
|
|
|
@ -112,15 +112,11 @@
|
|||
<script>
|
||||
import CaseAttachmentViewer from "@/business/case/components/case/CaseAttachmentViewer";
|
||||
import MsFileMetadataList from "../common/MsFileMetadataList";
|
||||
import { TokenKey } from "metersphere-frontend/src/utils/constants";
|
||||
import {
|
||||
byteToSize,
|
||||
getCurrentUser,
|
||||
getTypeByFileName, hasPermission,
|
||||
} from "@/business/utils/sdk-utils";
|
||||
import {TokenKey} from "metersphere-frontend/src/utils/constants";
|
||||
import {byteToSize, getCurrentUser, getTypeByFileName, hasPermission,} from "@/business/utils/sdk-utils";
|
||||
import axios from "axios";
|
||||
import { getUUID } from "metersphere-frontend/src/utils";
|
||||
import { getCurrentProjectID } from "metersphere-frontend/src/utils/token";
|
||||
import {getUUID} from "metersphere-frontend/src/utils";
|
||||
import {getCurrentProjectID} from "metersphere-frontend/src/utils/token";
|
||||
|
||||
import {
|
||||
attachmentList,
|
||||
|
@ -244,7 +240,7 @@ export default {
|
|||
async uploadFile(param, progressCallback) {
|
||||
let progress = 0;
|
||||
let file = param.file;
|
||||
let data = { belongId: this.targetId, belongType: this.belongType };
|
||||
let data = this.targetId;
|
||||
let CancelToken = axios.CancelToken;
|
||||
let self = this;
|
||||
|
||||
|
|
|
@ -337,28 +337,18 @@
|
|||
import TemplateComponentEditHeader from "@/business/plan/view/comonents/report/TemplateComponentEditHeader";
|
||||
import MsFormDivider from "metersphere-frontend/src/components/MsFormDivider";
|
||||
import FormRichTextItem from "metersphere-frontend/src/components/FormRichTextItem";
|
||||
import {
|
||||
buildCustomFields,
|
||||
parseCustomFieldForId,
|
||||
} from "metersphere-frontend/src/utils/custom_field";
|
||||
import {buildCustomFields, parseCustomFieldForId,} from "metersphere-frontend/src/utils/custom_field";
|
||||
import CustomFiledComponent from "metersphere-frontend/src/components/template/CustomFiledComponent";
|
||||
import TestCaseIssueList from "@/business/issue/TestCaseIssueList";
|
||||
import IssueEditDetail from "@/business/issue/IssueEditDetail";
|
||||
import {
|
||||
byteToSize,
|
||||
getTypeByFileName,
|
||||
getUUID,
|
||||
} from "metersphere-frontend/src/utils";
|
||||
import {byteToSize, getTypeByFileName, getUUID,} from "metersphere-frontend/src/utils";
|
||||
import {
|
||||
getCurrentProjectID,
|
||||
getCurrentUser,
|
||||
getCurrentUserId,
|
||||
getCurrentWorkspaceId,
|
||||
} from "metersphere-frontend/src/utils/token";
|
||||
import {
|
||||
hasLicense,
|
||||
hasPermission,
|
||||
} from "metersphere-frontend/src/utils/permission";
|
||||
import {hasLicense, hasPermission,} from "metersphere-frontend/src/utils/permission";
|
||||
import {
|
||||
enableThirdPartTemplate,
|
||||
getComments,
|
||||
|
@ -383,7 +373,7 @@ import CustomFiledFormItem from "metersphere-frontend/src/components/form/Custom
|
|||
import MsMarkDownText from "metersphere-frontend/src/components/MsMarkDownText";
|
||||
import IssueComment from "@/business/issue/IssueComment";
|
||||
import ReviewCommentItem from "@/business/review/commom/ReviewCommentItem";
|
||||
import { TokenKey } from "metersphere-frontend/src/utils/constants";
|
||||
import {TokenKey} from "metersphere-frontend/src/utils/constants";
|
||||
import TestCaseAttachment from "@/business/case/components/TestCaseAttachment";
|
||||
import axios from "axios";
|
||||
import MsFileMetadataList from "metersphere-frontend/src/components/environment/commons/variable/QuoteFileList";
|
||||
|
@ -912,7 +902,7 @@ export default {
|
|||
async uploadFile(param, progressCallback) {
|
||||
let progress = 0;
|
||||
let file = param.file;
|
||||
let data = { belongId: this.issueId, belongType: "issue" };
|
||||
let data = this.issueId;
|
||||
let CancelToken = axios.CancelToken;
|
||||
let self = this;
|
||||
uploadIssueAttachment(
|
||||
|
|
Loading…
Reference in New Issue