2012-11-27 7 views
0

HTML의 작은 화면을 사용하여 파일에 출력을 제공하려고합니다. 버튼을 클릭 할 때마다 파일의 텍스트가 바뀌길 원합니다. 이것은 내가 작성한 코드입니다.HTML의 텍스트 파일에 쓰기

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>This is Web App</title> 
</head> 
<script> 
function createDoc() 
{ 
var doc=document.open("answer.txt","replace"); 
var txt="<html><body>You clicked Allow</body></html>"; 
doc.write(txt); 
doc.close(); 
} 

function createDoc2() 
{ 
var doc=document.open("answer.txt","replace"); 
var txt="<html><body>You clicked Deny</body></html>"; 
doc.write(txt); 
doc.close(); 
} 
</script> 

<body> 
<h1> This is the visitor at your house</h1> 
<img src = "./images/chef.gif" width="130" height="101" /> 
<br /> 
<button name="Yes" type="button" onclick="createDoc()">Allow! </button> 
<button name="No" type="button" onclick="createDoc2()">Deny! </button> 


</body> 
</html> 

나는 올바른 방법이 아니지만 배우려고한다는 것을 알고 있습니다. 도와 주시고 저의 실수를 지적하고 가능한 경우 교정 해주십시오. 나는 많음이 있을지도 모른다. 나는이 시점에서 나 자신을 가르치려고 노력하고있다. 귀하의 도움을 많이 주시면 감사하겠습니다. 당신은 당신의 페이지에 의해 생성 된 파일을 다운로드하려면

+0

나는 이것이 가능하다는 것을 몰랐다. o.O –

+0

어, 그럴 수 없기 때문입니다. HTML5 File API가 있습니다.하지만 그렇게하려는 것은 아닙니다. 그것은 거대한 보안 위험이 될 것입니다 ... – tjameson

+0

@tjameson 나는 일하지 않을 생각이지만 시도하고 싶었습니다. Get Request 또는 뭔가를 보내고 이것을하는 것과 같은 방법이 있습니까? –

답변

0

,이 질문에 도움이 될 수 있습니다 :

Download data url file

아이디어는 당신이 64 기수로 (하지 하드, 최신 브라우저 데이터를 인코딩 할 필요가있다 지원 btoa) 브라우저가 브라우저를 열도록 지시합니다. 파일을 mime 형식으로 지정하여 속일 경우 (예 : application/octet-steam) 열 방법을 모르면 파일을 표시하는 대신 다운로드합니다.

이 해결 방법의 문제점은 파일의 이름을 지정할 수 없다는 것입니다.

파일의 이름을 지정하려면 웹 서버에 POST 데이터를 쓰고 서버의 파일에 쓰고 파일 경로로 window.open을 입력하십시오. 이렇게하면 해당 파일을 다운로드 할 수 있습니다.

자바 스크립트가 파일에 직접 쓸 수 있도록 진행중인 초안이 있지만이 파일은 사용자가 직접 액세스 할 수없는 샌드 박스가있는 위치에 있습니다. 이는 클라이언트에 대량의 데이터를 저장하는 웹 앱에만 해당됩니다. 귀하의 질문에서, 이것은 당신이 원하는 것이 아닌 것 같습니다. 위의 해결 방법 중 하나를 시도하십시오.

+0

[HTML5Rocks - 클라이언트에서 파일을 저장하는 파일] (http://updates.html5rocks.com/2011/08/Saving-generated-files-on-the-client-side) –

+0

@ 데릭 - 불행히도 결국 스펙에서 제거 될 것입니다. 아무것도 지원하지 않습니다. – tjameson

+0

그들은 [spec] (http://www.w3.org/TR/file-writer-api/#the-filesaver-interface)에 따라 제거하지 않습니다. –