应用程序/力下载

时间:2009-10-10 17:41:48

标签: php scripting zip mime-types

我正在创建一个只上传zip文件的脚本,我已经完成了以下验证:

if($itemtype != "application/x-zip-compressed"
   && $itemtype != "application/zip" && $itemtype != "application/octet-stream") {
  throw new exception("Your file should be a zip file!");
}

但我有一个文件类型为 application / force-download 的文件,但是当我查看mime类型时我找不到它,我是否还应该在验证中添加它(参见上面的代码) )?我试图上传的文件应该是一个普通的zip文件...这就是我的想法

2 个答案:

答案 0 :(得分:2)

在您的示例中修复您的代码,让您的问题更加清晰。

也就是说,目前还不清楚您是要尝试验证上传的文件还是下载的文件。

我会猜测并说你可能正在尝试提供已上传的文件。 Mimetypes是一种非常糟糕的验证方式,但你的问题实际上可能在于你的webhost。在过去类似的情况下,我看到共享主机提供商未经我的许可插入各种标题,导致类似于您可能遇到的问题,您的问题更加精确。不幸的是,在这种特殊情况下的解决方案是重新编写整个服务进程,以便在php中进行下载,这有很多问题。

答案 1 :(得分:0)

您需要检查文件扩展名,而不是内容类型。特别是,因为不同的浏览器可以发送不同的内容类型。