컨트롤러와 경로를 만들면됩니다.
Route::get('files/{filename}', [
'as' => 'file.get',
'uses' => '[email protected]',
]);
컨트롤러에서 올바른 디렉토리를 확인해야합니다. 공개 경로가 아닌 저장 경로에 파일을 보관하십시오. your-domain.com/files/45454553535.zip :
{{ route('file.get', ['filename' => '45454553535.zip') }}
이 작업은 링크처럼 보이는 생성 :
class FileController extends Controller
{
private $path;
public function __construct()
{
$path = storage_path()
. '/your-valid-directory/';
}
public function get($filename)
{
$file_path = $this->path
. filter_var($filename, FILTER_SANITIZE_STRING);
if (file_exists($file_path) && is_readable($file_path)) {
return response(file_get_contents($file_path), 200, [
'Content-Type: application/zip',
]);
} else {
abort(404);
}
}
}
이제 당신은에 의해 특정 파일에 대한 액세스를 얻을 수 있습니다. :)
어쨌든 제 의견으로는 - 미래에는 특정 헤더, 디렉토리가있는 파일 공장을 만드십시오.
행운을 빈다.
[Laravel : url 매개 변수를 숨기는 방법?] 가능한 복제본 (http://stackoverflow.com/questions/39951509/laravel-how-to-hide-url-parameter) –