public function previewFile()
{
$fileUrl = input('get.url');
if (empty($fileUrl)) {
echo '文件地址不能为空!';
die;
}
$stream_opts = [
"ssl" => [
"verify_peer" => false,
"verify_peer_name" => false,
]
];
$urlInfo = parse_url($fileUrl);
$path = $urlInfo['path'];
$extension = pathinfo($path, PATHINFO_EXTENSION);
$fileContent = file_get_contents($fileUrl, false, stream_context_create($stream_opts));
if ($extension == 'png') {
header('Content-Type:image/png');
} elseif ($extension == 'jpg' || $extension == 'jpeg') {
header('Content-Type:image/jpeg');
} elseif ($extension == 'pptx' || $extension == 'docx') {
$href = 'https://view.officeapps.live.com/op/view.aspx?src=' . urlencode($fileUrl) . '&wdOrigin=BROWSELINK';
$this->redirect($href);
} elseif ($extension == 'pdf') {
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="file.pdf"');
} else {
dump($extension);
die;
}
if ($fileContent !== false) {
echo $fileContent;
exit();
} else {
echo '无法获取文件内容。';
}
}