Heim > Backend-Entwicklung > PHP-Problem > So laden Sie Dateien in PHP herunter

So laden Sie Dateien in PHP herunter

coldplay.xixi
Freigeben: 2023-03-04 09:08:01
Original
4692 Leute haben es durchsucht

So laden Sie Dateien in PHP herunter: 1. Fügen Sie direkt die Dateiverknüpfungsmethode hinzu. 2. Übergeben Sie Parameter, um die Download-Verknüpfungsmethode zu finden. 3. Verwenden Sie die Funktionen [head()] und [fread()], um direkt zu gelangen Geben Sie die Datei an die Browsermethode aus.

So laden Sie Dateien in PHP herunter

So laden Sie Dateien in PHP herunter:

1. Fügen Sie den Dateilink direkt hinzu

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

Klicken Sie auf die Schaltfläche zum Herunterladen:

So laden Sie Dateien in PHP herunter

Verwandte Lernempfehlungen: php-Programmierung ( Video)

2. Übergeben Sie die Parameter, um den Download-Link zu finden und zu springen

Übergeben Sie die Parameter:

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

Suchen Sie die Datei und rufen Sie den Download-Link auf:

<?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;);
}
Nach dem Login kopieren

Ergebnis:

Die Datei existiert

So laden Sie Dateien in PHP herunter

Die Datei existiert nicht

So laden Sie Dateien in PHP herunter

3. Die Funktionen head() und fread() geben die Datei direkt an den Browser aus

<?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 ();    
}
Nach dem Login kopieren

Das Ergebnis: das gleiche wie beim zweiten

Zusammenfassung: Die Die ersten und zweiten Vorgänge sind relativ einfach, aber es ist einfach, die tatsächliche Adresse der Datei offenzulegen, und die Sicherheit ist nicht hoch. Der dritte Typ kann die tatsächliche Adresse der Datei besser verbergen. Verwandte Empfehlungen:

Programmiervideokurs

Das obige ist der detaillierte Inhalt vonSo laden Sie Dateien in PHP herunter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage