我遇到了一个非常不寻常的问题。我正在使用php force下载在我的网站上下载视频文件,这在大多数浏览器中工作正常,例如在PC中使用的chrome firefox IE。但我的Windows Mobile上的UC浏览器显示文件扩展名为unknown(例如:如果文件是video1.mp4,我下载的文件是video1.unknown)。 欢迎任何帮助。
if(file_exists($myfile))
{
// Add bellow code for mime type
$temp = explode(".",$myfile);
$ext = strtolower(end($temp));
$mime_types = array(
// video
'3gp' => 'video/3gpp',
'3g2' => 'video/3g2',
'avi' => 'video/avi',
'mp4' => 'video/mp4',
'asf' => 'video/asf',
'mov' => 'video/quicktime',
);
if (array_key_exists($ext, $mime_types)){
$mm_type=$mime_types[$ext];
}else{
$mm_type="application/octet-stream";
}
$fname=str_replace(" ","_",$result->TITLE);
//header("Cache-Control: public, must-revalidate");
header("Pragma: public");
header("Content-Type: ".$mm_type);
header('Content-Disposition: attachment; filename='.$fname);
header('Content-Length: '.filesize($myfile));
header("Content-Transfer-Encoding: binary");
ob_clean();
flush();
readfile($myfile);
}
else
{
echo "unable to download";
}
答案 0 :(得分:0)
使用文件名添加文件扩展名可以解决问题。
答案 1 :(得分:0)