본문 바로가기

Web Dev/Java Spring

전자정부프레임 워크 Java BackEnd 파일 업로드 하는 방법

반응형

HTML

<!-- 전체 -->
<div class="common_wr edu">
 <!-- 내용 --> <!-- 230420 추가 -->
        <div class="con receipt_con">
            <div class="form-card">
                    <div class="infoBx">
                        <label for="">
                            <input class="" name ="wr_18" id="wr_18" type="file">
                        </label>
                    </div>
                </div>
                <div class="form-actions">
                   <button class="form-btn" type="button" onclick="fwrite_submit(this);" id="btn_submit" accesskey='s' >다음</button>
                    <button class="form-btn-cancel -nooutline" id="btn_list"  onClick="window.location='/ud/write?bo_table=sub5_2_1'" type="reset">이전</button>
                </div>
        </div><!-- //con 내용 --> <!-- 230420 추가 끝 -->
</div><!-- //common_wr, edu 전체 -->

Javascript

// 여기에  -> wr_id 추가해서 보내고 controller에서 받아서 저장
    $.ajax({
		url: "/ud/write_update_file",
        type: "POST",
        processData: false,
        contentType: false,
        data: form_data,
        success: function (response) {
        	console.log(response)
        	alert("교육신청이 완료되었습니다."); 
			window.location = "/ud/index";
        },
        error: function (errorThrown) {
        	console.log(errorThrown)
        	alert("교육신청이 실패되었습니다." + errorThrown);
        /* 	
        	location.reload(); */
        }
    });

Controller

/// 
	@RequestMapping(value = "/write_update_file", method = RequestMethod.POST,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
	@ResponseBody
	public String write_update_file(@RequestParam("file") MultipartFile file, HttpSession session, HttpServletRequest request )throws IOException {
	

		 // 업로드된 파일을 저장할 경로와 파일 이름을 결정합니다.
		String saveDir = request.getSession().getServletContext().getRealPath("/resources/data/file/etc_file");
	    String originalFilename = file.getOriginalFilename();
	    File newFile = new File(saveDir, originalFilename);

		// 파일을 디스크에 저장합니다.
	    file.transferTo(newFile);
	    // 클라이언트에게 응답합니다.
	    String response = "{\"message\": \"File " + originalFilename + " is uploaded successfully.\", \"path\": \"" +newFile.getAbsolutePath() + "\"}";
	    return response;
	}

 

반응형