(安全下载)PHP直接读取该实际文件然后下载的方法去做
安全|下载
????? 你可能会笑我"下载文件"如此简单都值得说?当然并不是想象那么简单。例如你希望客户要填完一份表格,才可以下载某一文件,你第一个想法一定是用 "Redirect"的方法,先检查表格是否已经填写完毕和完整,然后就将网址指到该文件,这样客户才能下载,但如果你想做一个关于"网上购物"的电子商务网站,考虑安全问题,你不想用户直接复制网址下载该文件,笔者建议你使用PHP直接读取该实际文件然后下载的方法去做。程序如下:
??????????? $file_name = "tianhys.exee";
??????????? $file_dir = "/public/www/download/";
??????????? if (!file_exists($file_dir . $file_name)) { //检查文件是否存在
??????????? echo "文件找不到";
??????????? exit;
??????????? } else {
??????????? $file = fopen($file_dir . $file_name,"r"); // 打开文件
??????????? // 输入文件标签
??????????? Header("Content-type: application/octet-stream");
??????????? Header("Accept-Ranges: bytes");
??????????? Header("Accept-Length: ".filesize($file_dir . $file_name));
??????????? Header("Content-Disposition: attachment; filename=" .$file_name);
??????????? // 输出文件内容
??????????? echo fread($file,filesize($file_dir . $file_name));
??????????? fclose($file);
??????????? exit;}
????? 而如果文件路径是"http" 或者 "ftp" 网址的话,则源代码会有少许改变,程序如下:
?
??????????? $file_name = "tianhys.exe";
??????????? $file_dir = "http://www.tianhys.org/";
??????????? $file = @ fopen($file_dir . $file_name,"r");
??????????? if (!$file) {
??????????? echo "文件找不到";
??????????? } else {
??????????? Header("Content-type: application/octet-stream");
??????????? Header("Content-Disposition: attachment; filename=" .$file_name);
??????????? while (!feof ($file)) {
??????????? echo fread($file,50000);
??????????? }
??????????? fclose ($file);
??????????? }

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

使用Java的File.length()函數取得檔案的大小檔案大小是在處理檔案作業時很常見的一個需求,Java提供了一個很方便的方法來取得檔案的大小,即使用File類別的length()方法。本文將介紹如何使用此方法來取得檔案的大小,並給出對應的程式碼範例。首先,我們需要建立一個File物件來表示我們想要取得大小的檔案。以下是建立File物件的方法:Filef

php blob轉file的方法:1.建立一個php範例檔;2、透過「function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' })} 」方法實作Blob轉File即可。

想了解更多關於開源的內容,請造訪:51CTO鴻蒙開發者社群https://ost.51cto.com運行環境DAYU200:4.0.10.16SDK:4.0.10.15IDE:4.0.600一、建立應用程式點擊File- >newFile->CreateProgect。選擇模版:【OpenHarmony】EmptyAbility:填寫項目名,shici,應用包名com.nut.shici,應用儲存位置XXX(不要有中文,特殊字符,空格)。 CompileSDK10,Model:Stage。 Device

使用Java的File.renameTo()函數重命名檔案在Java程式設計中,我們經常需要對檔案進行重命名的操作。 Java提供了File類別來處理檔案操作,其中的renameTo()函數可以方便地重新命名檔案。本文將介紹如何使用Java的File.renameTo()函數來重新命名文件,並提供對應的程式碼範例。 File.renameTo()函數是File類別的一個方法,

【SpringBoot】透過Feign呼叫傳遞Header中參數如何透過Feign傳遞Header參數問題描述我們在SpringCloud中使用Feign請求另一個服務的Api介面時,有將Header中參數傳遞下去的需求,如果不做特殊處理,就會將Header中的參數遺失。解決方案方案一:透過@RequestHeader(name="headerName")來傳遞例如:Feign定義如下@FeignClient(name="service-name")pub

使用java的File.getParent()函數取得檔案的父路徑在Java程式設計中,我們經常需要操作檔案和資料夾。有時候,我們需要取得一個檔案的父路徑,也就是該檔案所在資料夾的路徑。 Java的File類別提供了getParent()方法用來取得檔案或資料夾的父路徑。 File類別是Java對檔案和資料夾的抽象表示,它提供了一系列操作檔案和資料夾的方法。其中,get

linux的header是指在文件或資料流中的開頭部分,用於包含關於內容的元數據,透過正確地編寫和使用Header文件,開發者能夠更好地利用系統資源,提高程式碼的可讀性和可維護性。

使用java的File.getParentFile()函數取得檔案的父目錄在Java程式設計中,我們經常需要操作檔案和資料夾。當我們需要取得檔案的父目錄時,可以使用Java提供的File.getParentFile()函數來完成。本文將介紹如何使用這個函數並提供程式碼範例。 Java中的File類別是用於操作檔案和資料夾的主要類別。它提供了許多方法來取得和操作文件的屬性
