【发布时间】:2012-01-08 17:01:24
【问题描述】:
我正在上传一些文件。下面是上传脚本的一部分(我使用的是https://github.com/blueimp/jQuery-File-Upload/blob/master/php/index.php的代码)
$upload = isset($_FILES[$this->options['param_name']]) ?
$_FILES[$this->options['param_name']] : null;
$info = array();
if ($upload && is_array($upload['tmp_name'])) {
foreach ($upload['tmp_name'] as $index => $value) {
$info[] = $this->handle_file_upload(
$upload['tmp_name'][$index],
isset($_SERVER['HTTP_X_FILE_NAME']) ?
$_SERVER['HTTP_X_FILE_NAME'] : $upload['name'][$index],
isset($_SERVER['HTTP_X_FILE_SIZE']) ?
$_SERVER['HTTP_X_FILE_SIZE'] : $upload['size'][$index],
isset($_SERVER['HTTP_X_FILE_TYPE']) ?
$_SERVER['HTTP_X_FILE_TYPE'] : $upload['type'][$index],
$upload['error'][$index]
);
}
选中后,通过$_SERVER['HTTP_X_FILE_TYPE'] 或$upload['type'][$index] 的mime 类型分别为pptx、docx 文件返回application/vnd.openxmlformats-officedocument.presentationml.presentation、application/vnd.openxmlformats-officedocument.wordprocessingml.document。
现在完成上传后,我正在尝试显示文件,我正在使用finfo_file() 获取 mime 类型。
$mime_type = finfo_file(finfo_open(FILEINFO_MIME_TYPE), $file_path);
echo $mime_type;
对于图像文件(如 png、jpeg)和 pdf,类型按预期返回,但对于 pptx 和 docx 文件,返回的 mime 类型为 application/zip。
为什么返回的结果与上传时不同?我的代码有问题还是我应该期待这个?那我该如何决定它是哪种文件类型呢?
【问题讨论】:
标签: php mime-types file-type