오늘은 생각이 들었습니다. JavaScript 애플리케이션의 메모리에있는 데이터에서 CSV를 생성 한 다음 파일 다운로드 프롬프트 (JavaScript로 작성)를 통해 해당 데이터를 사용자의 브라우저로 전송합니다.파일 JavaScript로 다운로드 하시겠습니까?
이것이 가능합니까?
오늘은 생각이 들었습니다. JavaScript 애플리케이션의 메모리에있는 데이터에서 CSV를 생성 한 다음 파일 다운로드 프롬프트 (JavaScript로 작성)를 통해 해당 데이터를 사용자의 브라우저로 전송합니다.파일 JavaScript로 다운로드 하시겠습니까?
이것이 가능합니까?
서버 상호 작용없이 클라이언트 측에서 완전히 수행하려면 최소한 Flash의 도움이 필요합니다.
Downloadify으로 보내 주시면 클라이언트 측 파일 생성시 가장 잘 보입니다.
demo을 확인하십시오.
서버가 주어진 MIME 유형에 대한 다운로드를 시작하도록 설정되어 있다면 간단히 location.href = 'myFile.csv'
을 수행 할 수 있습니다.
이렇게하면 사용자가 원하는대로 파일을 열거 나 저장할 것인지 묻는 메시지가 표시됩니다.
이렇게하려면 서버가 이러한 방식으로 작동하도록 구성해야합니다.
javascript를 통해 로컬/클라이언트 쪽 콘텐츠를 다운로드하는 방법은 간단하지 않습니다. smartclient-html-jsp를 사용하여 하나의 솔루션을 구현했습니다.
// 코드 시작
<%@ page import="java.util.*,java.io.*,java.util.Enumeration"%>
<%
response.setContentType ("text/csv");
//set the header and also the Name by which user will be prompted to save
response.setHeader ("Content-Disposition", "attachment;filename=\"data.csv\"");
String contents = request.getParameter ("text");
if (!(contents!= null && contents!=""))
contents = "No data";
else
contents = contents.replaceAll ("NEW_LINE", "\n");
//Open an input stream to the file and post the file contents thru the
//servlet output stream to the client m/c
InputStream in = new ByteArrayInputStream(contents.getBytes());
ServletOutputStream outs = response.getOutputStream();
int bit = 256;
int i = 0;
try {
while ((bit) >= 0) {
bit = in.read();
outs.write(bit);
}
//System.out.println("" +bit);
} catch (IOException ioe) {
ioe.printStackTrace(System.out);
}
outs.flush();
outs.close();
in.close();
%>
<HTML>
<HEAD>
</HEAD>
<BODY>
</BODY>
</HTML>
// 코드의 끝
이 코드는 테스트 및 배포/프로덕션 환경에서 작업이 크로스 브라우저 기능입니다.
감사
이 자바 스크립트 응용 프로그램의 맥락은 무엇인가 쉐일 렌드 라? 실행중인 곳, 웹 서버 또는 브라우저? – Pointy
잘 모른다. 너 해봤 니? – JohnFx
Redmond의 팀이 개발 한 특정 웹 브라우저에서만 가능합니다.이 팀은 "ActiveX"라는 보안 구멍이있는 독점 프레임 워크를 사용하고 있습니다.그럼에도 불구하고, 나는 그 웹 브라우저의 최신 버전에서 그렇게 할 때 경고를받을 것이라고 생각합니다. 세계가 알고있는 다른 모든 웹 브라우저에서 이것은 ** 불가능합니다. – BalusC