Ajax 파일 다운로드 실현

JQuery 의 ajax 함수 의 반환 유형 은 xml,text,json,html 등 형식 만 있 고'흐름'형식 이 없 기 때문에 ajax 다운 로드 를 실현 하려 면 해당 ajax 함수 로 파일 다운 로드 를 할 수 없습니다.그러나 js 로 form 을 생 성하 여 이 form 으로 파 라 메 터 를 제출 하고'흐름'형식의 데 이 터 를 되 돌려 줍 니 다.구현 과정 에서 페이지 도 새로 고침 되 지 않 았 다.
1.ajax 를 사용 하면 ajax 의 반환 값 형식 은 json,text,html,xml 형식 이거 나 ajax 의 전송 이 라 고 할 수 있 습 니 다.받 아들 이 는 것 은 string 문자열 일 뿐 스 트림 형식 이 되 지 않 기 때문에 파일 다운 로드 를 실현 할 수 없습니다.강 한 사용 은 response 충돌 이 발생 할 수 있 습 니 다.ajax 를 굳이 사용 하려 면 생 성 할 파일 과 관련 된 url 을 되 돌려 야 합 니 다.그 다음 에 리 셋 함수 에서 iframe 을 만 들 고 src 값 을 파일 url 로 설정 하거나 파일 생 성 흐름 에 대한 처리 url 을 설정 합 니 다.이렇게 하면 파일 다운 로드 를 실현 하고 페이지 가 새로 고침 되 지 않 습 니 다.
2.ajax 를 사용 하지 않 고 dom 동적 작업 이나 iframe,form 을 만 드 는 방식 으로 이 루어 집 니 다.파일 을 다운로드 하 는 동시에 페이지 를 새로 고치 지 않 습 니 다.그 중에서 iframe 의 src 는 파일 주소 url 로 파일 을 직접 다운로드 할 수도 있 고 스 트림 처리 url 은 response 스 트림 출력 을 통 해 다운로드 할 수도 있 습 니 다.form 은 스 트림 처리 url 은 response 스 트림 출력 을 통 해 다운로드 하고 dom 동적 작업 을 할 때 파일 다운 로드 를 실현 합 니 다.페이지 가 새로 고침 되 지 않 았 습 니 다.다운로드 와 동시에 진도 바 를 실현 하려 면 정시 작업 을 만 들 수 있 습 니 다.일정 시간 마다 배경 으로 요청 을 보 내 고 공용 대상,예 를 들 어 session 을 통 해 파일 다운로드 처리 진 도 를 얻 을 수 있 습 니 다.

var title=$("input[name='gjzSelect']").val();
var rqTime = $(".ui-datepicker-time").val();
var ddd= rqTime.split(" ");
var startTime=ddd[];
var endTime=ddd[];
var form = $("<form>"); //    form  
form.attr('style', 'display:none'); // form         
form.attr('target', '');
form.attr('method', 'post');
form.attr('action', "<%=basePath%>jiankong/madeExcel.do");
var input = $('<input>');
input.attr('type', 'hidden');
input.attr('name', 'startTime');
input.attr('value', startTime);
var input = $('<input>');
input.attr('type', 'hidden');
input.attr('name', 'endTime');
input.attr('value', endTime);
var input = $('<input>');
input.attr('type', 'hidden');
input.attr('name', 'title');
input.attr('value', title);
$('body').append(form); //      web 
form.append(input); //             
form.append(input);
form.append(input);
form.submit();
<%-- 
$.ajax({
url:'<%=basePath%>jiankong/madeExcel.do',
cache:false,
data:{
'startTime':startTime,
'endTime':endTime,
'title' :title
},
error:function (e){
alert("    !");
},
success:function (data){
alert("    !");
} 
}); 
--%>
위 에서 기술 한 것 은 여러분 에 게 공유 하 는 Ajax 가 파일 다운 로드 를 실현 하 는 것 에 관 한 지식 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다!

좋은 웹페이지 즐겨찾기