Why is PHP not returning correct mime for json files?(为什么PHP没有为json文件返回正确的MIME?)
                            本文介绍了为什么PHP没有为json文件返回正确的MIME?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
                        
                        问题描述
我知道json文件的正确MIME类型是applicattion/json,这一点可能在本文What is the correct JSON content type?中得到了证实。
然而,我想知道为什么我的PHP安装返回text/plain。在解析json文件之前,我需要测试正确的MIME。
我有以下代码
$fileinfo = new finfo();
$fileType = $fileinfo->file( $_FILES['tmp_name'], FILEINFO_MIME_TYPE );
其中$fileType返回text/plain而不是applicattion/json。
同样,$_FILES['type']返回application/octet-stream而不是applicattion/json。
我错过了什么?
编辑
我正在通过jQuery AJAX发送文件:
var formData = new FormData( $(form)[0] );
var jsonFile = $( 'input:file[name=contents]', form ).get(0).files[0];
formData.append( 'jsonFile', jsonFile );
$.ajax({ 
    type: 'POST',
    url: 'url',
    data: formData,
    dataType:'json',
    enctype : 'multipart/form-data',
    processData: false,
    contentType : false,
    encode:true,
})
推荐答案
finfo通过其内容标识文件类型,而不是文件扩展名。
只有具有签名的文件才能被正确识别。否则,将根据其内容标识为text/plain(ASCII)或application/octet-stream(二进制)。
遗憾的是,JSON编码的内容没有签名,因此被标识为text/plain或application/octet-stream。
如需进一步阅读,请访问:-
List of file signatures
希望这能有所帮助。
下面的[编辑1]是我针对上述内容的测试脚本。干杯。$filename = "test.json";
$finfo = finfo_open(FILEINFO_MIME_TYPE);
file_put_contents($filename, "<?php 
");
printf("%s
", finfo_file($finfo, $filename));
file_put_contents($filename, "@echo off
");
printf("%s
", finfo_file($finfo, $filename));
file_put_contents($filename, json_encode(array("a" => "1")));
printf("%s
", finfo_file($finfo, $filename));
file_put_contents($filename, "xff");
printf("%s
", finfo_file($finfo, $filename));
finfo_close($finfo);
                        这篇关于为什么PHP没有为json文件返回正确的MIME?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
				 沃梦达教程
				
			本文标题为:为什么PHP没有为json文件返回正确的MIME?
				
        
 
            
        基础教程推荐
             猜你喜欢
        
	     - 将变量从树枝传递给 js 2022-01-01
 - 使用 scandir() 在目录中查找文件夹 (PHP) 2022-01-01
 - PHPUnit 的 Selenium 2 文档到底在哪里? 2022-01-01
 - 如何在数学上评估像“2-1"这样的字符串?产生“1"? 2022-01-01
 - Web 服务器如何处理请求? 2021-01-01
 - php 7.4 在写入变量中的 Twig 问题 2022-01-01
 - Yii2 - 在运行时设置邮件传输参数 2022-01-01
 - php中的foreach复选框POST 2021-01-01
 - 主题化 Drupal 7 的 Ubercart “/cart"页 2021-01-01
 - php中的PDF导出 2022-01-01
 
    	
    	
    	
    	
    	
    	
    	
    	
				
				
				
				