容易想到的就一种:
将资源文件放到public目录之外,所有对这些资源的访问通过统一入口,比如:
http://xxx/file.php?video.mp3
这样做会对服务器造成很大压力吗?
有更好的方法吗?
请多多指教!
回复讨论(解决方案)
文件保存时打乱文件名,用乱码或者MD5这种东西
在数据库中保存用户id-原文件名-乱码文件名的对应关系,调用时通过原文件名,查询到乱码,然后提供下载,下载名设置成原名即可
文件保存时打乱文件名,用乱码或者MD5这种东西
在数据库中保存用户id-原文件名-乱码文件名的对应关系,调用时通过原文件名,查询到乱码,然后提供下载,下载名设置成原名即可
没太明白,下载时设置成原文件名不是和直接下载一样?是直接访问?
还有,如果用这种方法是不是就能用cdn加速?
PS:现在不能编辑自己的贴了?
文件保存时打乱文件名,用乱码或者MD5这种东西
在数据库中保存用户id-原文件名-乱码文件名的对应关系,调用时通过原文件名,查询到乱码,然后提供下载,下载名设置成原名即可
没太明白,下载时设置成原文件名不是和直接下载一样?是直接访问?
一个是重名问题,一个是不能让人猜到文件名...或者直接在服务器配置为拒绝web访问
除非你能做到让web服务器认识你的会员,不然只能这么做,效率问题我没测试过,用readfile应该是可以的,只要不是那种先一次读到内存再写入输出流的。你这么想,http访问文件,一样也是先经过了一层web服务器,损耗在所难免。
基于复杂文件名,只能防第一次,别人记录下来就可以二次使用了。
使用php去?取文件,文件放在非web能?取的目?,然後用php?出,在 php控制?限。
例如:?站的目?是 /home/www/
<?phpif(判?是否有?限){ $file = '/home/file/aaa.jpg'; echo file_get_contents($file);}?>
好吧,看样子都是这么做的

PHP日誌記錄對於監視和調試Web應用程序以及捕獲關鍵事件,錯誤和運行時行為至關重要。它為系統性能提供了寶貴的見解,有助於識別問題並支持更快的故障排除

Laravel使用其直觀的閃存方法簡化了處理臨時會話數據。這非常適合在您的應用程序中顯示簡短的消息,警報或通知。 默認情況下,數據僅針對後續請求: $請求 -

PHP客戶端URL(curl)擴展是開發人員的強大工具,可以與遠程服務器和REST API無縫交互。通過利用Libcurl(備受尊敬的多協議文件傳輸庫),PHP curl促進了有效的執行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显著减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想為客戶最緊迫的問題提供實時的即時解決方案? 實時聊天使您可以與客戶進行實時對話,並立即解決他們的問題。它允許您為您的自定義提供更快的服務

文章討論了PHP 5.3中介紹的PHP中的晚期靜態結合(LSB),允許靜態方法的運行時間分辨率調用以更靈活的繼承。 LSB的實用應用和潛在的觸摸


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

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

WebStorm Mac版
好用的JavaScript開發工具

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

SublimeText3 Linux新版
SublimeText3 Linux最新版