任何人都可以訪問公共文件夾下的文件,除非您的網絡服務器將策略設置爲特定的目錄。
如果您目前無法訪問文件在公共文件夾是因爲,也許,你是不是正確輸入網址,即:
的文件中
/var/www/myapp/public/img/logo.png
威爾是通過訪問:
http://myapp.com/img/logo.png
請注意,您的文件夾的公共部分是沒有出現在您的網址僅當您的網絡服務器配置正確,並且您的.htaccess
文件已準備就緒並且能夠重寫您的URL。
對於敏感的文件,你所能做的就是將它們存儲INSITE您的應用程序文件夾(或外部公開的任何其他文件夾),其中,只是你的應用程序將有機會獲得,這樣的事情就可以OK:
/var/www/myapp/app/storage/<create a new folder here>
然後,是的,創建一個路由閱讀並出示您的安全文件:
Route::get('readfile/{fileName}', ['before' => 'auth', 'use' => '[email protected]']);
過濾'before' => 'auth'
將保證一個未經過身份驗證將永遠無法訪問文件。
在你的控制器,你可以做這樣的事情,以檢查是否可以看到一個文件:
class ReadFileController extends Controller {
public function read($fileName)
{
if(Auth::user()->id == 1) // of course this is not a good way, just an example
{
return $this->getFile($fileName);
}
else
{
return Response::make(null, 403); // forbidden
}
}
private function getFile($fileName)
{
...
}
}
TY這會清除一些東西。只是爲了澄清,當你說「... web服務器正確配置...」你的意思是正確配置,以支持不需要輸入公共。沒有正確配置一般? 此外,身份驗證只是允許某些用戶使用該路徑來訪問任何文件,或者是每個文件/目錄的身份驗證,我的意思是如果用戶想要他們可以鍵入一個路徑來查看一個文件,當他們應該只能看另一個文件。 –
配置爲指向公開並重寫URL並從中刪除index.php。如果它被正確配置,這是你如何訪問一個文件,其他人也可以。剛剛編輯回答你的第二個問題。 –