>  기사  >  백엔드 개발  >  PHP에서 파일을 다운로드하는 방법

PHP에서 파일을 다운로드하는 방법

coldplay.xixi
coldplay.xixi원래의
2020-08-11 09:49:554632검색

PHP에서 파일을 다운로드하는 방법: 1. 파일 링크를 직접 추가합니다. 2. 매개변수를 전달하여 다운로드 링크 방법을 찾고 이동합니다. 3. [head()] 및 [fread()] 함수를 사용하여 직접 출력합니다. 브라우저 방식으로 파일을 전송합니다.

PHP에서 파일을 다운로드하는 방법

PHP에서 파일을 다운로드하는 방법:

1. 파일 링크를 직접 추가하세요.

<button>
    <a href = "http://localhost/down.zip">
    下载文件
</button>

다운로드하려면 버튼을 클릭하세요.

PHP에서 파일을 다운로드하는 방법

관련 학습 권장사항: php 프로그래밍 ( 동영상)

2. 매개변수를 전달하여 다운로드 링크를 찾고

매개변수 전달:

<button>
    <a href = "http://localhost?f=&#39;down&#39;">
    下载文件
</button>

파일을 찾아 다운로드 링크에 도전:

<?php
$down = $_GET[&#39;f&#39;];   //获取文件参数
$filename = $down.&#39;.zip&#39;; //获取文件名称
$dir ="down/";  //相对于网站根目录的下载目录路径
$down_host = $_SERVER[&#39;HTTP_HOST&#39;].&#39;/&#39;; //当前域名
//判断如果文件存在,则跳转到下载路径
if(file_exists(__DIR__.&#39;/&#39;.$dir.$filename)){
    header(&#39;location:http://&#39;.$down_host.$dir.$filename);
}else{
    header(&#39;HTTP/1.1 404 Not Found&#39;);
}

결과:

파일이 존재합니다

PHP에서 파일을 다운로드하는 방법

파일이 존재하지 않습니다.

PHP에서 파일을 다운로드하는 방법

3. head() 및 fread() 함수는 파일을 브라우저에 직접 출력합니다.

<?php  
$file_name = "down";
$file_name = "down.zip";     //下载文件名    
$file_dir = "./down/";        //下载文件存放目录    
//检查文件是否存在    
if (! file_exists ( $file_dir . $file_name )) {    
    header(&#39;HTTP/1.1 404 NOT FOUND&#39;);  
} else {    
    //以只读和二进制模式打开文件   
    $file = fopen ( $file_dir . $file_name, "rb" ); 
    //告诉浏览器这是一个文件流格式的文件    
    Header ( "Content-type: application/octet-stream" ); 
    //请求范围的度量单位  
    Header ( "Accept-Ranges: bytes" );  
    //Content-Length是指定包含于请求或响应中数据的字节长度    
    Header ( "Accept-Length: " . filesize ( $file_dir . $file_name ) );  
    //用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。
    Header ( "Content-Disposition: attachment; filename=" . $file_name );    
    //读取文件内容并直接输出到浏览器    
    echo fread ( $file, filesize ( $file_dir . $file_name ) );    
    fclose ( $file );    
    exit ();    
}

결과: 두 번째 파일과 동일

요약: 첫 번째와 두 번째 작업은 비교적 간단하지만 파일의 실제 주소를 노출하기 쉽고 보안이 높지 않습니다. 세 번째 유형은 파일의 실제 주소를 더 잘 숨길 수 있습니다

관련 권장 사항: 프로그래밍 비디오 과정

위 내용은 PHP에서 파일을 다운로드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.