> 백엔드 개발 > PHP 튜토리얼 > PHP에서 세 가지 파일 다운로드 구현에 대한 자세한 소개

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

慕斯
풀어 주다: 2023-04-10 08:56:02
앞으로
2926명이 탐색했습니다.

이 기사는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿