laravel 放置在storage目录下文件展示

/**
 * 展示临时文件
 * @param $fileName
 * @return bool|null|string
 */
public function tmpFile($fileName,$filedir)
{
    $temp_path = tempnam(sys_get_temp_dir(), $fileName);
    $isExist = file_put_contents($temp_path, Storage::get($filedir . $fileName));
    return $temp_path;
}

/**
 * 响应文件
 * @param $fileName 文件名称
 * @return BinaryFileResponse
 */
public function downResponse($fileName,$filedir)
{
    return new BinaryFileResponse($this->tmpFile($fileName,$filedir));
}

/**
 * 展示临时文件  需要带token
 * @param Request $request
 * @return $this|BinaryFileResponse
 */
public function tmpFileShow($filedir,Request $request)
{
    $fileName = $request->fileName ? $request->fileName : null;
    return $this->downResponse($fileName,$filedir)->deleteFileAfterSend(true);
}
参考:https://segmentfault.com/q/1010000008258288

你可能感兴趣的:("php")