스프링

 

CSS

<style>
.fileDrop{
	width:100%;
	height:300px;
	border:1px solid #DD4B39;
	background-color : rgba(221, 75, 57, 0.5);
	margin-top:50px;
}

small{
	margin-left:3px;
	font-weight:bold;
	color:gray;
}
</style> 
 

 

 

HTML

 

  <h3 class="box-title">이미지 업로드 폼 ( 370*220 )</h3>

    <div class="box-tools">
                <div class="input-group input-group-sm" style="width: 150px;">
                 
                </div>
              </div>
           
           
            </div>
            <!-- /.box-header -->
            <div class="fileDrop"></div>
       			
     <div class="uploadedList"></div>	

 

script

<script>
       			$(".fileDrop").on("dragenter dragover", function(event){
       				event.preventDefault();
       			});
       		
       			$(".fileDrop").on("drop", function(event){
       				event.preventDefault();
       			
       				var files =event.originalEvent.dataTransfer.files;
       				
       				var file =files[0];
       				
       				//console.log(file);
       				
       				var formData =new FormData();
       				
       				formData.append("file", file);
       				
       				$.ajax({
       					
       					url :"/gallery/uploadAjax",
       					data:formData,
       					dataType:'text',
       					processData :false,
       					contentType:false,
       					type:'POST',
       					success:function(data){
       						alert(data);		
       					}
       				});
       				
       			});
       		
 </script>
       
       

 

 

event.originalEvent 는 JQuery 를 이용하는 경우 event 가 순수한 DOM 이벤트가 아니기 때문에 event.originalEvent 를 이용해서 

순수한 원래의 DOM 이벤트를 가져옵니다.

 

event.dataTransfer 는 이벤트와 같이 전달된 데이터를 의미하고, 그 안에 포함된 파일 데이터를 찾아내기 위해서 

dataTransfer.files 를 이용합니다.

 

-

processData : 데이터를 일반적인 query string 으로 변환할 것인지를 결정합니다. 기본값으로 true 로. 'application/x-www-form-urencoded'

타입으로 전송합니다. 다른 형식으로 데이터를 보내기 위하여 자동 변환하고 싶지 않은 경우는 false 를 지정합니다.

 

- contentType : 기본값은  'application /x-www-form-urlencoded' 입니다. 파일의 경우 multipart/form-data 방식으로 전송하기 위해서

false 로 지정합니다.

 

 

Controller

 

@Controller
@RequestMapping("/gallery")
public class GalleryUploadController {

	
	private static final String JSP_PAGE ="/admin/gallery/";
	
	private static Logger logger =LoggerFactory.getLogger(GalleryUploadController.class);
	
	
	@RequestMapping(value ="/uploadAjax",  method=RequestMethod.GET)
	public String uploadAjax(){
		
		
		return JSP_PAGE+"/uploadform";
	}

	
	
	@ResponseBody
	@RequestMapping(value="/uploadAjax", method=RequestMethod.POST,
				produces="text/plain;charset=UTF-8")
	public ResponseEntity<String> uploadAjax(MultipartFile file) throws Exception{
		
		logger.info("originalName : " + file.getOriginalFilename());
		logger.info("size : " +file.getSize());
		logger.info("contentType: " + file.getContentType());
		
		return new ResponseEntity<String>(file.getOriginalFilename(), HttpStatus.CREATED);
	}
	
	
	
}

 

 

 

 

 

 

about author

PHRASE

Level 60  머나먼나라

자신은 할 수 없다고 생각하고 있는 동안은 그것을 하기 싫다고 다짐하고 있는 것이다. 그러므로 그것은 실행되지 않는 것이다. -스피노자

댓글 ( 4)

댓글 남기기

작성