AJAX file upload

form control의 값은 parameter전송방식으로 전송하고 (HttpServletRequest 객체가 받는다.)
File만 비동기로 전송하는 방식.
파일전송과 Form Control을 함께 전송해야할 일이 있을 때 사용하면 편리.

  • 사용법
  1. contentType속성을 false
    contentType = false => parameter전송방식에서 file전송방식으로 변경

  2. processData false
    processData : false => 요청 URL에 QueryString이 연결되지 않는다.


1. form태그
<form id="아이디" name="이름" action="요청받는 JSP URL" method="get | post">
  <input type="text"...>
  <input type="file" name="name" id="id"/>
</form>

2. form객체를 얻는다.
var formData = $("아이디")[0];
var formData = new FormData( 찾아낸 폼 객체 );

$.ajax({
  url:파일을 저장할 URL,
  type:"post",
  contentType : false,
  processData : false,
  data : formData,//파일을 가진
  dataType:"JSON",
  error:function(xhr){
	console.log(xhr.status)
},
  success:function(data){
  }
});

이미지 미리보기

이미지를 선택하면 바로 접근이 불가능하다.

  1. 파일 컴포넌트 접근.
    $("#id명").이벤트 함수(function(event)){
    파일을 선택하면 해당 파일이 이벤트 객체의 target.files 배열에 저장되고, 가장 처음에 있는 컴포넌트 얻는다.
    var file=event.target.files[0];

  2. 스트림 생성
    var reader = new FileReader();

  3. FileReader객체의 onload이벤트 핸들러 설정
    reader.onload
    }

XML(eXtensible Markup Language)

프로그램의 환경설정용으로 사용, 이종언어간 데이터 전달용으로 사용.
HTML과 다르게 태그가 정해져 있지 않다.(개발자가 상황에 맞게 태그를 정의해서 사용.)

//C언어와 java언어간의 데이터 전달
//Java와 JavaScript언어간 데이터 전달
//Java와 Python 언어간의 데이터 전달

SGML에서 생성되었고, 태그(node)를 사용자가 마음대로 선언할 수 있는 마크업 언어
연산의 기능이 없다.
작성규칙을 지키지 않으면 error가 발생
XML, DTD, XSLT(XSL)로 구성될 수 있다.

//XML : XML만 존재하며, 작성규칙만 준수하여 제작하는 XML : well-formd문서(적격문서)
//XML과 DTD가 함께 존재하며, DTD를 준수하여

XML작성규칙

대소문자로 구분한다.
시작노드와 끝 노드는 반드시 짝으로 나와야 한다.
최상위 부모노드(root node, 끝 노드)는 반드시 하나만 존재.
속성은 공백으로 구분되어야한다.(띄어쓰기 필수)

  • 문서 형식
<?xml version="1.0" encoding="charset" standalone="DTD사용여부"?>
<부모노드>
  	<자식노드>
</부모노드>


* 주석
<!--한줄 또는 여러 줄 주석-->

Server Setting

  1. Web service를 하기 위해서 8080=>80으로 변경
  2. <Host> node변경 domain으로 변경가능
    Host name="localhost" => Host name="ip"
  3. service하기 위한 경로 수정
  4. war 파일 압축풀기
  5. host의 하위노드로 context추가
    Context path="/웹에서 사용할 이름" docBase="HDD경로" reloadable="true"
    WorkDir="JSP가 자바로 변경될때"

0개의 댓글