JavaScript 이미지 위조 비동기 업로드 프로 세 스 분석 실현
우선 ajax 에서 파일 이 있 는 post 요청 을 보 낼 수 없 기 때문에 동기 화 방식 을 사용 해 야 합 니 다.그러나 새로 고침 할 때 저 희 는 원래 페이지 에서 새로 고침 하지 말고 숨겨 진 iframe 에서 새로 고침 합 니 다.form 폼 에서 action 은 파일 업로드 작업 을 정상적으로 작성 합 니 다.붙 어 있 는 target 은 숨겨 진 iframe 을 작성 합 니 다.이렇게 폼 을 제출 하면 파일 이 업로드 되 고 페이지 가 숨겨 진 iframe 으로 새로 고침 되 기 때문에 사용자 가 보 는 효 과 는 ajax 처리 효과 와 같 습 니 다.
dom 구조
여기 에는 두 가지 주의 할 점 이 있 습 니 다.하 나 는 iframe 이 숨겨 져 있 고 사용자 에 게 보이 지 않 습 니 다.둘째,form 의 target 속성 은 iframe 의 id 속성 입 니 다.이 곳 의 일치 성 을 확보 해 야 합 니 다.그렇지 않 으 면 서버 의 전송 주 소 를 얻 을 수 없습니다.
그림 미리 보기
일반적으로 사진 이 업로드 되 기 전에 저 희 는 사용자 가 업로드 후의 모습 을 미리 볼 수 있 기 를 바 랍 니 다.여 기 는 두 가지 처리 방식 이 있 습 니 다.하 나 는 사진 이 올 라 오 면 서버 가 그림 의 주 소 를 되 돌려 주 고 그림 을 보 여 주 는 것 입 니 다.중간 시간 차이 가 적어 서 사용자 에 게 정말 미리 보 는 것 같다 는 착각 을 줍 니 다.두 번 째 방법 은 그림 이 업로드 되 기 전에 input 의 로 컬 그림 주 소 를 가 져 와 서 표시 하 는 것 입 니 다.로 컬 그림 을 표시 하기 때문에 시간 차이 가 없어 서 진정한 미리 보 기 를 실현 합 니 다.간단 한 논리 논리 코드 는 다음 과 같다.
$("#userHeadImg").change(function(event) {
var file = $(event.target)[0].files[0];
var src = URL.createObjectURL(file);
if(file){
//
}else{
//
}
// src , img src
});
업로드 시작onchange 이벤트 에서 form 의 submit 사건 을 촉진 하여 사진 을 업로드 합 니 다.
$("#upload").submit();
서버 에서 전송 할 그림 url 가 져 오기서버 가 주 소 를 iframe 으로 되 돌려 주면 iframe 이 새로 고 쳐 집 니 다.js 감청 iframe 의 onload 를 사용 하여 onload 가 발생 하면 서버 에서 메 시 지 를 전송 한 것 을 표시 합 니 다.
var imgsrc=$(this).contents().find("pre").text();
업로드 파일 형식 제한 추가accept="image/gif;image/jpg;"
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thymeleaf 의 일반 양식 제출 과 AJAX 제출텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.