Maison > Questions et réponses > le corps du texte
J'ai mentionné que certaines images et fichiers téléchargés par les utilisateurs sont enregistrés dans le répertoire de stockage (pour des raisons de sécurité, nous ne voulons pas que les utilisateurs les téléchargent à volonté),
Alors, comment devrions-nous obtenir le chemin lorsque nous devons afficher le fichier ?
滿天的星座2017-05-16 16:50:12
Deux solutions, la première, PHP lit le fichier et le génère, le code dans Laravel est à peu près le suivant
// 控制器
// 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;
}
Deuxièmement, utilisez la commande Linux ln pour créer un lien symbolique de dossier de stockage vers le dossier public, mais cela n'est pas différent du stockage direct de fichiers en public.