GVKun编程网logo

如何在python中找到文件的mime类型?(python怎么找到文件)

13

想了解如何在python中找到文件的mime类型?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于python怎么找到文件的相关问题,此外,我们还将为您介绍关于php–如何获取要下载的文件的

想了解如何在python中找到文件的mime类型?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于python怎么找到文件的相关问题,此外,我们还将为您介绍关于php – 如何获取要下载的文件的MIME类型?、PHP如何获取文件的mime类型?(代码示例)、ruby-on-rails – 如何在不编写文件的情况下找出mime类型?、使用.NET,如何根据文件签名而不是扩展名找到文件的mime类型的新知识。

本文目录一览:

如何在python中找到文件的mime类型?(python怎么找到文件)

如何在python中找到文件的mime类型?(python怎么找到文件)

假设您要将一堆文件保存在某个地方,例如在BLOB中。假设您想通过网页分发这些文件,并让客户端自动打开正确的应用程序/查看器。

假设:浏览器通过HTTP响应中的mime-type(content-type?)标头找出要使用的应用程序/查看器。

基于此假设,除了文件的字节外,您还希望保存MIME类型。

您将如何找到文件的MIME类型?我目前在Mac上,但是在Windows上也应该可以使用。

将文件发布到网页时,浏览器是否添加此信息?

是否有一个整洁的python库来查找此信息?WebService还是(甚至更好的)可下载数据库?

答案1

小编典典

toivotuo建议的python-magic方法已过时。Python-magic的当前主干位于Github上,并根据该自述文件找到MIME类型,其操作如下。

# For MIME typesimport magicmime = magic.Magic(mime=True)mime.from_file("testdata/test.pdf") # ''application/pdf''

php – 如何获取要下载的文件的MIME类型?

php – 如何获取要下载的文件的MIME类型?

我必须点击链接下载列出的文件,因为我使用了下面的脚本,但是当文件被下载时,它无法确定下载文件的扩展名.那么,如何获取要下载的文件的MIME类型? _请帮忙…

$filename = $_GET['val'];
         // Fetch the file info.
    $filePath = $_SERVER['DOCUMENT_ROOT'] . "dfms/images/uploads/".$filename;


    if(file_exists($filePath)) {
        echo $fileName = basename($filePath);
        $fileSize = filesize($filePath);

        // Output headers.
        header("Cache-Control: private");
        header("Content-Type: application/octet");
        header("Content-Length: ".$fileSize);
        header("Content-disposition: attachment; filename=".$fileName);

        // Output file.
        readfile ($filePath);                   
        exit();
    }
    else {
        die('The provided file path is not valid.');
    }

解决方法

使用FileInfo扩展中的finfo_file函数(在PHP 5.3中默认启用).
http://www.php.net/manual/en/function.finfo-file.php

从文档中的示例

$finfo = finfo_open(FILEINFO_MIME_TYPE);
echo finfo_file($finfo,$filename);
finfo_close($finfo);

在5.3之前的PHP版本中,可以安装pecl扩展http://pecl.php.net/package/Fileinfo

但是在这种情况下,它需要magic_open(libmagic)库http://sourceforge.net/projects/libmagic

另一种方法是使用不推荐使用的函数mime_content_type($filename)http://au.php.net/manual/en/function.mime-content-type.php

它依赖于mime.magic文件

PHP如何获取文件的mime类型?(代码示例)

PHP如何获取文件的mime类型?(代码示例)

在php中可以使用内置函数mime_content_type()函数来获取文件的mime类型,下面本篇文章就来带大家了解一下mime_content_type()函数,看看mime_content_type()函数是如何获取文件的mime类型的。

PHP如何获取文件的mime类型?(代码示例)

me_content_type()函数PHP中的内置函数,用于获取文件的MIME内容类型。

基本语法:

string mime_content_type( $file )

参数:me_content_type()函数接受单个参数$ file,它指定要查找的MIME详细信息的文件路径。

立即学习“PHP免费学习笔记(深入)”;

返回值:me_content_type()函数返回MIME内容类型;如果失败了,会返回false。

示例:

下面是demo目录下的一些文件,下面我们来使用me_content_type()函数来获取这些文件的mime类型:

2.jpg

实现代码:

<?php 
// 输出不同类型文件的结果
echo mime_content_type(&#39;demo/1.jpg&#39;) . "</br>"; 
echo mime_content_type(&#39;demo/2.png&#39;) . "</br>"; 
echo mime_content_type(&#39;demo/tp.psd&#39;) . "</br>"; 
echo mime_content_type(&#39;demo/index.html&#39;) . "</br>"; 
echo mime_content_type(&#39;demo/sqpurple.gif&#39;) . "</br>"; 
echo mime_content_type(&#39;demo/filename.txt&#39;) . "</br>"; 
echo mime_content_type(&#39;demo/demo.ppt&#39;) . "</br>"; 
echo mime_content_type(&#39;demo/filename.pdf&#39;) . "</br>"; 
echo mime_content_type(&#39;demo/filename.docx&#39;) . "</br>"; 
?>
登录后复制

输出:

2.jpg

相关视频教程推荐:《PHP教程》

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上就是PHP如何获取文件的mime类型?(代码示例)的详细内容,更多请关注php中文网其它相关文章!

ruby-on-rails – 如何在不编写文件的情况下找出mime类型?

ruby-on-rails – 如何在不编写文件的情况下找出mime类型?

这是使用Rails 5和 ruby-filemagic.目前我正在将上传的图像保存到我的数据库中,除了它的mime类型.我的控制器中有这个代码

def create
    @person = Person.new(person_params)
    if @person.image
      cur_time_in_ms = DateTime.Now.strftime('%Q')
      file_location = "/tmp/file#{cur_time_in_ms}.ext"
      File.binwrite(file_location,@person.image.read)
      fm = FileMagic.new(FileMagic::MAGIC_MIME)
      @person.content_type = fm.file(file_location,true)
    end
    if @person.save
      redirect_to @person
    else
      # This line overrides the default rendering behavior,which
      # would have been to render the "create" view.
      render "new"
    end
  end

困扰我这种方法的事情是,我必须在确定其mime类型之前将文件写入文件系统.这似乎很浪费.如何在不先创建文件的情况下找出mime类型?

编辑:为了回答给出的答案,我重新安排了一些事情,但是现在“content_type”变成了“application / x-empty”,即使我上传了一个有效的png文件.这是代码

if @person.image

  cur_time_in_ms = DateTime.Now.strftime('%Q')
  file_location = "/tmp/file#{cur_time_in_ms}.ext"
  File.binwrite(file_location,@person.image.read)
  file = File.open(file_location,"rb")
  contents = file.read
  # Scale image appropriately
  #img = Magick::Image::read(file_location).first
  @person.content_type = FileMagic.new(FileMagic::MAGIC_MIME).buffer(@person.image.read,true)
  @person.image = contents

解决方法

假设你是通过html表单上传文件,IO对象应该已经有mime类型,你可以这样得到它:

mime = params[:file].content_type

使用.NET,如何根据文件签名而不是扩展名找到文件的mime类型

使用.NET,如何根据文件签名而不是扩展名找到文件的mime类型

我正在寻找一种简单的方法来获取文件扩展名不正确或未给出的mime类型,类似于仅在.Net中的此问题。

答案1

小编典典

在Urlmon.dll中,有一个名为的函数FindMimeFromData

从文档中

MIME类型检测或“数据嗅探”是指从二进制数据确定适当的MIME类型的过程。最终结果取决于服务器提供的MIME类型标头,文件扩展名和/或数据本身的组合。通常,只有前256个字节的数据有效。

因此,请从文件中读取第一个(最大)256个字节,并将其传递给FindMimeFromData

关于如何在python中找到文件的mime类型?python怎么找到文件的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于php – 如何获取要下载的文件的MIME类型?、PHP如何获取文件的mime类型?(代码示例)、ruby-on-rails – 如何在不编写文件的情况下找出mime类型?、使用.NET,如何根据文件签名而不是扩展名找到文件的mime类型的相关信息,请在本站寻找。

本文标签: