Javascript 来自数据blob的文件扩展名

Javascript 来自数据blob的文件扩展名,javascript,php,blob,file-extension,Javascript,Php,Blob,File Extension,我有javascript代码,可以检测图像何时粘贴到contenteditable字段: document.onpaste = function(event){ var items=(event.clipboardData || event.originalEvent.clipboardData || event.dataTransfer).items; for(i in items){ var item=items[i]; if(item.kin

我有javascript代码,可以检测图像何时粘贴到contenteditable字段:

document.onpaste = function(event){
    var items=(event.clipboardData || event.originalEvent.clipboardData || event.dataTransfer).items;
    for(i in items){
        var item=items[i];
        if(item.kind==='file' && ~item.type.indexOf("image")){ //is file and is image
            event.preventDefault();
            var blob=item.getAsFile();
            console.log(item, blob);
            var data=new FormData();
            data.append('fname','imageFromClipboard'); //extension for file name??
            data.append('newImage',blob);
            sendImage(data); //just a $.POST request
        }
    }
}
以及接收图像POST请求的PHP代码:

$image = $_FILES['newImage'];
$imageFileType = pathinfo($image["name"],PATHINFO_EXTENSION); // obviously doesn't work
$imageId = new ImageId();
$imageName = $imageId.".".$imageFileType;
// [... some checks on the file ...]
$targetFile = "../../images/uploads/{$imageName}";
if($imageOK && move_uploaded_file($image["tmp_name"],$targetFile)){ 
//[ do stuff ]

如何从blob可靠地获取文件扩展名?我应该用JS还是PHP?所有可能的图像文件类型都可以拆分MIME类型的图像/png,例如斜杠,并将其用作扩展名吗?

拆分MIME类型应该可以。只有问题函数不推荐使用

mime\u content\u type-检测已弃用文件的mime内容类型

您将不得不使用

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$ftype = finfo_file($finfo, $image["tmp_name"])