Rumah > Soal Jawab > teks badan
Saya menyebut bahawa beberapa gambar dan fail yang dimuat naik oleh pengguna disimpan dalam direktori storan (atas sebab keselamatan, kami tidak mahu pengguna memuat turunnya sesuka hati),
Jadi bagaimana kita harus mendapatkan laluan apabila kita perlu memaparkan fail?
滿天的星座2017-05-16 16:50:12
Dua penyelesaian, yang pertama, PHP membaca fail dan mengeluarkannya, kod dalam Laravel adalah kira-kira seperti berikut
// 控制器
// https://github.com/shellus/shcms/blob/v2.0.0/app/Http/Controllers/FileController.php
class FileController extends Controller
{
public function show($id){
return File::findOrFail($id) -> downResponse();
}
}
// Model
https://github.com/shellus/shcms/blob/v2.0.0/app/File.php
public function downResponse(){
return new BinaryFileResponse($this -> downToLocal());
}
public function downToLocal(){
$temp_path = tempnam(sys_get_temp_dir(), $this->id);
$is_success = file_put_contents($temp_path, \Storage::disk('public')->get($this -> full_path));
return $temp_path;
}
Kedua, gunakan arahan Linux ln untuk mencipta pautan lembut folder storan ke folder awam, tetapi berbuat demikian tidak berbeza dengan menyimpan fail secara langsung di khalayak ramai.