我有用户可以通过在线PHP驱动的网站搜索/下载的文件数据库。我包含PDF,.doc,.docx文件等。到目前为止,一切都在Mac / Windows桌面上正常工作。
我们正在使用移动版Safari测试iOS 9上的网站,当我们点击链接下载其中一个.docx文件时,我们发现了一个奇怪的错误:
Unable to Read Document
An error occurred while reading the document
如果我将文档保存为.doc文件并更新数据库,则会成功下载。在PHP页面中,我根据文件扩展名设置内容标题,如下所示:
if($url == "jpg"){
header('Content-type: image/jpeg');
} else if($url == "gif"){
header('Content-type: image/gif');
} else if($url == "doc"){
header('Content-type: application/msword');
} else if($url == "dot"){
header('Content-type: application/msword');
} else if($url == "docx"){
header('Content-type: application/msword');
} else if($url == "xls"){
header('Content-type: application/vnd.ms-excel');
} else if($url == "xlsx"){
header('Content-type: application/vnd.ms-excel');
} else if($url == "png"){
header('Content-type: image/png');
} else if($url == "pdf"){
header('Content-type: application/pdf');
} else if($url == "mp3"){
header('Content-type: audio/mpeg');
// set default
} else{
header('Content-type: application/force-download');
}
我应该设置一个不同的内容类型标头,或者我可以做一些其他更改,让移动版Safari识别它是一个.docx文件并像往常一样打开它吗?
答案 0 :(得分:0)
原来我的.docx文件标题错了。它应该设置为:
} else if($url == "docx"){
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');