FileReader 를 이용 하여 파일 을 Base 64 로 인 코딩 한 후 AJAX 를 통 해 업로드 합 니 다.

AJAX 를 사용 하면 파일 을 직접 업로드 할 수 없습니다. 보통 새 iframe 이 폼 을 제출 하 는 과정 을 완성 하여 비동기 로 파일 을 업로드 하 는 효 과 를 얻 습 니 다.이렇게 하면 비교적 좋 은 브 라 우 저 호환성 을 얻 을 수 있 지만 코드 의 양 이 비교적 클 것 입 니 다. 예 를 들 어 plplpload 와 같은 파일 업로드 플러그 인 을 사용 하 더 라 도.
어떻게 하면 유연 할 수 있 을 까? 일반적인 AJAX 가 폼 데 이 터 를 제출 하 는 것 처럼 파일 을 일반 폼 매개 변수 로 볼 수 있 었 으 면 좋 겠 다.
자 바스 크 립 트 의 FileReader 대상 을 이용해서 파일 을 base 64 로 인 코딩 해서 서버 에 전송 하면 되 잖 아 요 ~
손 을 쓰기 시작 하여 의식 이 풍족 하 다.
전단 에서 파일 을 base 64 인 코딩 하고 ajax 를 통 해 서버 로 전송 합 니 다:


  




$(document).ready(function(){
$("#fileup").change(function(){
var v = $(this).val();
var reader = new FileReader();
reader.readAsDataURL(this.files[0]);
reader.onload = function(e){
console.log(e.target.result);
$('#file_base64').val(e.target.result);
};
});
});
백 엔 드 에서 파일 데 이 터 를 디 코딩 하고 저장 합 니 다:

 
 

javascript 의 FileReader 대상 주류 브 라 우 저 는 모두 지원 합 니 다. IE 10 이상 의 지원 은 작은 범위 에서 서 비 스 를 제공 할 때 이 비동기 로 파일 을 업로드 하 는 방식 을 고려 할 수 있 고 시간 도 절약 할 수 있 으 며 IE 시 리 즈 를 호 환 할 수 있다 고 생각 합 니 다.

좋은 웹페이지 즐겨찾기