>  기사  >  백엔드 개발  >  PHP에서 세 가지 파일 다운로드 구현에 대한 자세한 소개

PHP에서 세 가지 파일 다운로드 구현에 대한 자세한 소개

慕斯
慕斯앞으로
2021-06-22 09:33:122838검색

이 기사는 PHP에서 세 가지 종류의 파일 다운로드 구현에 대해 자세히 소개하며, 이는 특정 참조 가치가 있으므로 모든 사람에게 도움이 될 수 있습니다. .

PHP에서 세 가지 파일 다운로드 구현에 대한 자세한 소개

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

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

다운로드하려면 버튼을 클릭하세요.
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에서 세 가지 파일 다운로드 구현에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제