当前位置: 首页 > 面试题库 >

.rar,.zip文件MIME类型

桂志诚
2023-03-14
问题内容

我正在开发一个简单的php上传脚本,用户只能上传ZIP和RAR文件。

我应该使用哪些MIME类型检查$_FILES[x][type]?(请提供完整清单)

谢谢..


问题答案:

来自freedompeace,Kiyarash和Sam Vloeberghs的答案:

.rar    application/x-rar-compressed, application/octet-stream
.zip    application/zip, application/octet-stream, application/x-zip-compressed, multipart/x-zip

我也会检查文件名。这是检查文件是RAR还是ZIP文件的方法。我通过创建一个快速的命令行应用程序对其进行了测试。

<?php

if (isRarOrZip($argv[1])) {
    echo 'It is probably a RAR or ZIP file.';
} else {
    echo 'It is probably not a RAR or ZIP file.';
}

function isRarOrZip($file) {
    // get the first 7 bytes
    $bytes = file_get_contents($file, FALSE, NULL, 0, 7);
    $ext = strtolower(substr($file, - 4));

    // RAR magic number: Rar!\x1A\x07\x00
    // http://en.wikipedia.org/wiki/RAR
    if ($ext == '.rar' and bin2hex($bytes) == '526172211a0700') {
        return TRUE;
    }

    // ZIP magic number: none, though PK\003\004, PK\005\006 (empty archive), 
    // or PK\007\008 (spanned archive) are common.
    // http://en.wikipedia.org/wiki/ZIP_(file_format)
    if ($ext == '.zip' and substr($bytes, 0, 2) == 'PK') {
        return TRUE;
    }

    return FALSE;
}

请注意,它仍然不能100%确定,但是可能已经足够好了。

$ rar.exe l somefile.zip
somefile.zip is not RAR archive

但是,即使WinRAR也会将非RAR文件检测为SFX存档:

$ rar.exe l somefile.srr
SFX Volume somefile.srr


 类似资料:
  • 我正在尝试使用共享意图共享一个文件。如果我将“text/平原”设置为mime类型,它会像文本而不是文本文件一样读取内容,那么共享菜单中给出的选项是Whatsapp、Line等。 有人知道如何配置共享意图,使共享选项仅是能够发送<代码>的程序吗。txt文件(Gmail、Dropbox等,但不是Whatsapp等)?谢谢

  • 问题内容: 是否有一个好的Java API可以处理有人可能会推荐的RAR存档文件?谷歌搜索没有发现任何令人信服的东西。 问题答案: 您可以尝试JUnRar,“纯Java中实现的RAR处理API”(引用该站点)。

  • MIME(多用途Internet邮件扩展)类型告诉浏览器如何处理某些类型的文件。 当文件发送到您网站访问者的浏览器时,它也会发送该文件的MIME类型。 MIME类型告诉浏览器文件类型以及如何将文件提供给用户。 例如,如果将.js文件发送到浏览器,则还会发送application/JavaScript MIME类型以告知浏览器.js文件是JavaScript文件,浏览器会相应地处理该文件。 大多数M

  • 问题内容: 我只是想知道大多数人如何从Java文件中获取mime类型?到目前为止,我已经尝试了两个工具:。 第一个给我内存异常,第二个没有正确关闭其流。我只是想知道其他人是否拥有他们使用和正常工作的方法/库? 问题答案: 不幸, 之所以无法使用,是因为URL的这种使用将文件锁定了,例如,它是不可删除的。 但是,你有: 还有以下内容,其优点是不仅可以使用文件扩展名,而且还可以浏览内容 但是,正如上面

  • 本文向大家介绍python 检查文件mime类型的方法,包括了python 检查文件mime类型的方法的使用技巧和注意事项,需要的朋友参考一下 magic 模块可以检查文件的mime类型,而不是从后缀名来判断,例如判断文件是不是视频或图片类型如下: 以上这篇python 检查文件mime类型的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 我正在使用symfony2中的类上载图像文件。我允许使用mime类型和的图像。当我从系统上传一个png文件到服务器时,它的mime类型会自动更改。我知道它改变了,因为当我发出这个命令: 它给了我这个: PHPUnit测试代码 我正在命令提示符下使用测试我的REST web服务文件上载,如下所示: