Postman에서 파일 및 JSON 데이터를 업로드하려면 어떻게 해야 합니까?
Spring MVC를 사용하고 있는 방법은 다음과 같습니다.
/**
* Upload single file using Spring Controller.
*/
@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public @ResponseBody ResponseEntity<GenericResponseVO<? extends IServiceVO>> uploadFileHandler(
@RequestParam("name") String name,
@RequestParam("file") MultipartFile file,
HttpServletRequest request,
HttpServletResponse response) {
if (!file.isEmpty()) {
try {
byte[] bytes = file.getBytes();
// Creating the directory to store file
String rootPath = System.getProperty("catalina.home");
File dir = new File(rootPath + File.separator + "tmpFiles");
if (!dir.exists()) {
dir.mkdirs();
}
// Create the file on server
File serverFile = new File(dir.getAbsolutePath() + File.separator + name);
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile));
stream.write(bytes);
stream.close();
System.out.println("Server File Location=" + serverFile.getAbsolutePath());
return null;
} catch (Exception e) {
return null;
}
}
}
우편배달부의 세션 ID와 파일도 전달해야 합니다.가가어 떻떻 ?럴? ???
우체부에서 메서드 유형을 POST로 설정합니다.
다음으로 [Body]-> [ Form - data ]-> [ Parameter Name ]를 선택합니다(코드에 따라 파일).
값 열 옆에 "text, file" 드롭다운이 나타나면 File을 선택합니다.이미지 파일을 선택하여 게시합니다.
나머지 "텍스트" 기반 매개변수의 경우, 우편 배달원과 마찬가지로 게시할 수 있습니다.파라미터 이름을 입력하고 오른쪽 드롭다운 메뉴에서 "텍스트"를 선택한 후 원하는 값을 입력한 후 보내기 버튼을 누릅니다.컨트롤러 메서드가 호출됩니다.
누락된 비주얼 가이드
먼저 거의 보이지 않는 옅은 회색 온 화이트 드롭다운을 찾아야 합니다.File
는 ' 해제'의 키입니다.Choose Files
버튼을 클릭합니다.
선택한 후POST
를 선택합니다.Body->form-data
dropdown 、 [ File ]드롭다운을 찾은 후 [File]를 선택합니다.그 때 비로소 'Choose Files' 버튼이 마법처럼 나타납니다.
다음과 같이 할 수 있습니다.
다음과 같이 합니다.
본문 -> 폼 데이터 -> 파일 선택
"이름" 대신 "파일"을 입력해야 합니다.
또한 Body -> raw 필드에서 JSON 데이터를 전송할 수도 있습니다.(JSON 문자열을 붙여넣기만 하면 됩니다)
[SHOW COLUMNS]에서 [Content Type]을 선택한 후 "application/json"의 content-type을 json text의 파라미터로 설정합니다.
다 된 수가 요.Content Type
after. 좀 내가.마마후 、 나나스나나스 발발다다다발발이이 、 은은람람람람 바길바 。
스텝은 다음과 같습니다.
- 우체부의 빨간색 표시 영역을 클릭합니다.
- 이제 녹색으로 표시된 옵션을 확인합니다(
Content Type
를 참조해 주세요. - 이제 노란색으로 표시된 영역에서 검색 내용 유형을 변경합니다.
내 경우:
invoice_id_ls
에는 (key)가 되어 있습니다.json
data.data.data.data.contract.documents
를 포함합니다.file
data.data.data.data.contract.placed_amount
normal text
스트링
- 머리글은 쓰지 마세요.
- json 데이터를 .json 파일에 넣습니다.
- 두 개의 파일을 모두 선택합니다.하나는 요청 파라미터 키용 .txt 파일이고 다른 하나는 요청 파라미터 키용 .json 파일입니다.
만약 누군가가 json 데이터를 폼-데이터 형식으로 보내고 싶다면, 이와 같은 변수를 선언하면 된다.
집배원:
보시는 바와 같이 설명 파라미터는 기본 json 형식이며, 그 결과 다음과 같습니다.
{ description: { spanish: 'hola', english: 'hello' } }
아래 그림과 같이 위에서 아래로 단계를 따르십시오.
세 번째 단계에서 아래 이미지와 같이 유형 선택 드롭다운을 찾을 수 있습니다.
폼데이터를 사용하여 멀티파트에서 파일 업로드 및 동일한 POST 요청에서 json 데이터(DTO 객체)를 전송해야 하는 경우
컨트롤러에서 JSON 개체를 문자열로 가져오고 이 행을 추가하여 직렬화를 해제합니다.
ContactDto contactDto = new ObjectMapper().readValue(yourJSONString, ContactDto.class);
Body > binary > Select File (파일 선택)
필요한 경우:
본문 -> 폼 데이터
필드 이름을 배열로 추가
스프링 휴게실에서는 아래 코드를 사용합니다.
@PostMapping(value = Constant.API_INITIAL + "/uploadFile")
public UploadFileResponse uploadFile(@RequestParam("file") MultipartFile file,String jsonFileVo) {
FileUploadVo fileUploadVo = null;
try {
fileUploadVo = new ObjectMapper().readValue(jsonFileVo, FileUploadVo.class);
} catch (Exception e) {
e.printStackTrace();
}
PUT
을 「요청으로 해 주세요.POST
하지만 ""를 추가합니다._method
> =>PUT
your form-data
파라미터를 지정합니다.
json 데이터와 함께 파일을 포함하는 mulitpart 데이터를 보내는 방법은 다음과 같습니다. 우체국 본문 탭에서 각 json 키 필드의 content-type을 다음과 같이 'application/json'으로 설정해야 합니다.
파일 하나와 정수 둘 다 통과해야 했어요.나는 이렇게 했다:
업로드할 파일 전달 필요: Sumit의 답변에 따라 수행했습니다.
요청 유형: POST
본문 -> 폼 데이터
KEY라는 제목 아래에 변수 이름('내 백엔드 코드의 파일')을 입력합니다.
백엔드:
file = request.files['file']
'파일' 옆에 드롭다운 상자가 있어 '파일' 또는 '텍스트' 중에서 선택할 수 있습니다.'파일'을 선택하고 VALUE라는 제목 아래에 '파일 선택'이 나타납니다.이 버튼을 클릭하면 파일이 선택되는 창이 열립니다.
2. 정수를 전달해야 합니다.
이동처:
파라메스
KEY 아래에 변수 이름(예: id)을 입력하고 VALUE 아래에 변수 이름(예: 1)을 입력합니다.
백엔드:
id = request.args.get('id')
됐다!
Content-Type을 설정할 수 있는 각 폼 데이터 키에 대해 오른쪽에 Content-Type 열을 추가하기 위한 우체부 버튼이 있으며 컨트롤러 내부의 문자열에서 json을 구문 분석할 필요가 없습니다.
먼저 post in 메서드를 설정하고 링크 API를 채웁니다.
다음으로 [Body]-> [ Form - data ]-> [ Parameter Name ]를 선택합니다(코드에 따라 파일).
세션을 유지하기 위해 쿠키를 사용하는 경우 인터셉터를 사용하여 브라우저에서 우편 배달원으로 쿠키를 공유할 수 있습니다.
또한 파일을 업로드하려면 우편 배달원의 본문 탭 아래에 있는 양식 데이터 탭을 사용할 수 있습니다. 이 탭에서 키-값 형식으로 데이터를 제공하고 각 키에 대해 값 텍스트/파일 유형을 선택할 수 있습니다.파일을 업로드하는 옵션이 나타납니다.
ID와 파일을 하나의 오브젝트에 포함시키려면 요청 오브젝트를 메서드에 표준으로 추가한 후 Postman 내에서 Body를 폼 데이터로 설정하고 키 앞에 요청 오브젝트 이름(예: 요청)을 붙일 수 있습니다.SessionId 및 요청.파일.
우체부를 통해 파일을 업로드하고 입력 데이터를 전달하는 절차는 스크린샷과 함께 아래 블로그에서 매우 잘 설명되어 있습니다.이 블로그에서는 api 코드가 노드 js에 기재되어 있습니다.더 명확하게 하기 위해 한 번 살펴볼 수 있습니다.
https://jksnu.blogspot.com/2021/09/how-to-create-post-request-with.html
백엔드 부품에서
컨트롤러의 나머지 서비스에는 이러한 멀티파트 + JSON 요청을 처리하기 위해 @RequestPart와 MultipartFile이 혼재합니다.
@RequestMapping(value = "/executesampleservice", method = RequestMethod.POST,
consumes = {"multipart/form-data"})
@ResponseBody
public boolean yourEndpointMethod(
@RequestPart("properties") @Valid ConnectionProperties properties,
@RequestPart("file") @Valid @NotNull @NotBlank MultipartFile file) {
return projectService.executeSampleService(properties, file);
}
프런트 엔드:
formData = new FormData();
formData.append("file", document.forms[formName].file.files[0]);
formData.append('properties', new Blob([JSON.stringify({
"name": "root",
"password": "root"
})], {
type: "application/json"
}));
이미지 참조(POSTMAN 요구):
파일 및 json에 대한 폼 데이터로 우체국 요청을 보려면 클릭하십시오.
우편배달부의 json 데이터와 함께 이미지를 전송하려면 다음 단계를 따라야 합니다.
- 우체부에게 보낼 방법을 만드세요.
- 본문 섹션으로 이동하여 폼 데이터를 클릭합니다.
- 드롭다운 목록에서 필드 이름 선택 파일을 다음과 같이 제공합니다.
- 다른 필드도 지정할 수 있습니다.
- 이제 아래 그림과 같이 컨트롤러에 이미지 저장 코드를 쓰면 됩니다.
컨트롤러:
public function sendImage(Request $request)
{
$image=new ImgUpload;
if($request->hasfile('image'))
{
$file=$request->file('image');
$extension=$file->getClientOriginalExtension();
$filename=time().'.'.$extension;
$file->move('public/upload/userimg/',$filename);
$image->image=$filename;
}
else
{
return $request;
$image->image='';
}
$image->save();
return response()->json(['response'=>['code'=>'200','message'=>'image uploaded successfull']]);
}
그게 너한테 도움이 되길 바라
언급URL : https://stackoverflow.com/questions/39037049/how-to-upload-a-file-and-json-data-in-postman
'programing' 카테고리의 다른 글
Vuex가 복잡한 개체에 반응하지 않음 (0) | 2022.06.18 |
---|---|
Java에서는 (a==1 & a==2 & a==3)가 true로 평가될 수 있습니까? (0) | 2022.06.18 |
C 컴파일러와 C++ 컴파일러는 강제하지 않는데 함수 시그니처에 어레이 길이를 허용하는 이유는 무엇입니까? (0) | 2022.06.18 |
오브젝트 프로포트에 필요한 오브젝트 속성이 있는지 확인하는 방법 (0) | 2022.06.18 |
Vuex getter가 저장소 변환으로 새로 고쳐지지 않음 (0) | 2022.06.17 |