这就是我的全部。
<?php
if ((($_FILES["file"]["type"] == "file/exe")
&& ($_FILES["file"]["size"] < 20000000))
{
我只需要上传.exe文件类型,我该怎么做? reg ex?(PHP)
答案 0 :(得分:1)
我认为您应该使用类似finfo_file
的内容。据我所知,上传者可以欺骗$_FILES["file"]["type"]
任何他想要的东西。
答案 1 :(得分:1)
没有可靠的方法可以做到这一点,因为客户端发送的所有信息都可能被篡改。
我只需检查文件扩展名,如:
if (strncasecmp(substr($_FILES["file"]["name"], -4), '.exe') === 0) {
// is .exe
}
此外,您可以查找特定的magic numbers。
如果您要传送该文件,请确保使用正确的MIME媒体类型(例如application/octet-stream)。
答案 2 :(得分:0)
此外,您还可以检查每个文件的MIME类型.exe可执行文件的应用程序类型始终为mime
pplication / octet-stream,application / x-msdownload,application / exe,application / x-exe,application / dos-exe,vms / exe,application / x-winexe,application / msdos-windows,application / x -msdos程序
答案 3 :(得分:0)
如果您使用RegExp或pathinfo,在这种情况下我认为更直接,您只检查文件名而不是文件类型。
检查this answer以了解如何获取mime类型(fileinfo或mime_content_type)
答案 4 :(得分:-1)
$_FILES["uploaded_files"]["type"][$i] != "application/octet-stream"