강제로 '증명'이라는 자바 스크립트 문자열로 파일을 다운로드하려고합니다. PHP 스크립트에서 동작을 트리거하는 숨겨진 양식을 만들었습니다. Window.location.href를 사용하지 않는 이유는 Proof 변수가 길어서 get 메서드가 처리하지 못했기 때문입니다.숨겨진 양식이 강제로 다운로드되지 않습니다.
는
$("#save").click(function() {
var Proof = $("#main").html();
var url = '/download-to-file.php';
//send request
jQuery('<form action="'+ url +'" method="post">'+
'<input type="hidden" name="Proof" value="'+ Proof +'" />'+
'</form>').appendTo('body').submit().remove();
});
저장 PHP 코드 버튼을 클릭하면 // :
<?php
$Proof = $_POST["Proof"];
$proof = stripslashes($Proof);
$file = 'savedproof.txt';
file_put_contents($file, $proof);
header('Content-disposition: attachment; filename="'.$file.'"');
header("Content-Type: text/txt");
header("Content-Transfer-Encoding: binary");
header('Content-length: '.filesize($file));
header('Accept-Ranges: bytes');
header('Content-Description: File Transfer');
readfile($file);
?>
을 나는 다운로드 대화 상자를 얻을 수 있지만, 파일이 비어 있습니다. 나는 심지어 'test'와 같은 더 작은 문자열로 시도했지만 여전히 비어있어 숨겨진 양식의 가치가 작동하지 않는다고 추측하고 있습니다.
감사
당신이 당신의 로그 파일에 오류를 얻고있다? – pregmatch
파일을 덮어 쓸 권한이 있습니까? 또한 .. $ Proof variabile은 비어 있지 않습니까? 출력이 양식에서 가져온 것이면 파일을 덮어 쓸 필요가 있습니까? –
변수가 비어 있지 않습니다. alert (Proof)로 선택했는데 html 코드가 포함되어 있습니다. 쓰기 권한에 대해서는 아래 제안을 시도했지만 작동하지 않아 다운로드 대화가 나타나지 않았습니다. 나는 단순히 사용자가 웹 사이트의 주요 div를 텍스트 파일로 다운로드하도록하고있다. 이 메인 div는 사용자가 동적으로 생성했습니다. 그는 원할 경우 나중에로드 할 수 있습니다. –