想了解如何在python中找到文件的mime类型?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于python怎么找到文件的相关问题,此外,我们还将为您介绍关于php–如何获取要下载的文件的
想了解如何在python中找到文件的mime类型?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于python怎么找到文件的相关问题,此外,我们还将为您介绍关于php – 如何获取要下载的文件的MIME类型?、PHP如何获取文件的mime类型?(代码示例)、ruby-on-rails – 如何在不编写文件的情况下找出mime类型?、使用.NET,如何根据文件签名而不是扩展名找到文件的mime类型的新知识。
本文目录一览:- 如何在python中找到文件的mime类型?(python怎么找到文件)
- php – 如何获取要下载的文件的MIME类型?
- PHP如何获取文件的mime类型?(代码示例)
- ruby-on-rails – 如何在不编写文件的情况下找出mime类型?
- 使用.NET,如何根据文件签名而不是扩展名找到文件的mime类型
如何在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类型?
$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.'); }
解决方法
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_content_type()函数来获取文件的mime类型,下面本篇文章就来带大家了解一下mime_content_type()函数,看看mime_content_type()函数是如何获取文件的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类型:
实现代码:
<?php // 输出不同类型文件的结果 echo mime_content_type('demo/1.jpg') . "</br>"; echo mime_content_type('demo/2.png') . "</br>"; echo mime_content_type('demo/tp.psd') . "</br>"; echo mime_content_type('demo/index.html') . "</br>"; echo mime_content_type('demo/sqpurple.gif') . "</br>"; echo mime_content_type('demo/filename.txt') . "</br>"; echo mime_content_type('demo/demo.ppt') . "</br>"; echo mime_content_type('demo/filename.pdf') . "</br>"; echo mime_content_type('demo/filename.docx') . "</br>"; ?>
输出:
相关视频教程推荐:《PHP教程》
以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!
以上就是PHP如何获取文件的mime类型?(代码示例)的详细内容,更多请关注php中文网其它相关文章!
ruby-on-rails – 如何在不编写文件的情况下找出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
解决方法
mime = params[:file].content_type
使用.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类型的相关信息,请在本站寻找。
本文标签: