나는 Php를 통해 서버에 텍스트 파일을 쓰고 클라이언트가 그 파일을 다운로드하게하고 싶다.클라이언트에게 파일 보내기
어떻게하면됩니까?
기본적으로 클라이언트는 서버에서 파일을 다운로드 할 수 있어야합니다.
나는 Php를 통해 서버에 텍스트 파일을 쓰고 클라이언트가 그 파일을 다운로드하게하고 싶다.클라이언트에게 파일 보내기
어떻게하면됩니까?
기본적으로 클라이언트는 서버에서 파일을 다운로드 할 수 있어야합니다.
PHP에는 파일에 쓰기위한 매우 단순한 C와 유사한 함수가 많이 있습니다.
<?php
// first parameter is the filename
//second parameter is the modifier: r=read, w=write, a=append
$handle = fopen("logs/thisFile.txt", "w");
$myContent = "This is my awesome string!";
// actually write the file contents
fwrite($handle, $myContent);
// close the file pointer
fclose($handle);
?>
그것은 매우 기본적인 예입니다,하지만 당신은 여기 작업의 종류에 더 많은 참조를 찾을 수 있습니다 :
그냥 http://example.com/textfile.php에 사이트에 링크를 게시 여기에 쉬운 예입니다
<?php
header('Content-Type: text/plain');
print "The output text";
?>
:
그리고 PHP 파일
는 다음과 같은 코드를 삽입당신이 (데이터베이스에서) 콘텐츠 동적을 만들 수있는 그런 식으로 ... 당신이 찾고있는 하나가 아닌 경우 "콘텐츠 유형"에 대한 Google보십시오.
이미 게시 된 데이터 외에도 시도하고 싶은 헤더가 있습니다.
그것의 단지 그것의 처리하는 것을 의미하는 방법을 제안, 수 그것을 무시하고 방법을 알고있는 경우 단순히 창에 파일을 표시하도록 선택한 사용자 에이전트 :
<?php
header('Content-Type: text/plain'); # its a text file
header('Content-Disposition: attachment'); # hit to trigger external mechanisms instead of inbuilt
이 Rfc2183보기 Content-Disposition 헤더에 대한 자세한 내용은
"Content-Disposition"에 대해 몰랐습니다. 정보 주셔서 감사합니다. +1 – Calvin
콘텐츠 유형을 application/octet-stream으로 설정하면 브라우저는 항상 파일을 다운로드로 제공하며 어떤 유형의 파일이든간에 내부적으로 표시하지 않습니다.
<?php
filename="download.txt";
header("Content-type: application/octet-stream");
header("Content-disposition: attachment;filename=$filename");
// output file content here
?>
추신 : 일부 UA의 경우에는 약간의 동작이있을 수 있지만 RFC 사양이 아니므로 대문자 버전을 사용하는 것이 가장 좋습니다. –
옥텟 스트림에 의존하는 다른 문제는 외부에서 열려고하는 응용 프로그램을 결정하기 위해 MIME을 사용할 수 없기 때문에 사용자가 저장하도록 강제하는 것입니다. –
@Kent Fredric : RFC에 따르면 헤더 이름은 대소 문자를 구분하지 않습니다. – tylerl
사용자가 파일의 실제 URL을 보지 못하도록하려는 경우이를 수행하는 것이 가장 좋은 방법입니다.
<?php
$filename="download.txt";
header("Content-disposition: attachment;filename=$filename");
readfile($filename);
?>
또한 mod_access로 파일을 보호 할 수 있습니다.
링크가 끊어졌습니다. 고칠 수 있니? –
링크 예입니다. – Zeusoflightning125