suchen

Heim  >  Fragen und Antworten  >  Hauptteil

So zeigen Sie in Laravel Bilddateien an, die im Speicherverzeichnis gespeichert sind.

Ich habe erwähnt, dass einige von Benutzern hochgeladene Bilder und Dateien im Speicherverzeichnis gespeichert werden (aus Sicherheitsgründen möchten wir nicht, dass Benutzer sie nach Belieben herunterladen),

Wie sollen wir also den Pfad ermitteln, wenn wir die Datei anzeigen müssen?

滿天的星座滿天的星座2807 Tage vor623

Antworte allen(1)Ich werde antworten

  • 滿天的星座

    滿天的星座2017-05-16 16:50:12

    两个方案,第一个,php读取文件并输出,在Laravel中代码大致如下

    // 控制器
    // 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;
    }
        

    第二个,使用Linux ln命令建立storage文件夹软链接public文件夹,但是这样做与直接将文件存放在public没有区别。

    Antwort
    0
  • StornierenAntwort