Php 如何设置仅上载word文件的条件

Php 如何设置仅上载word文件的条件,php,file,upload,ms-word,Php,File,Upload,Ms Word,这是我上传PNG格式图像的代码。现在代替PNG,我希望它只上传Word文件。如何编写仅上载Word文件的条件?您可以使用 或 如果构建允许的文件类型的数组,如下所示: $filename = basename($_FILES['uploaded_file']['name']); $ext = substr($filename, strrpos($filename, '.') + 1); if ($ext == ".doc"){ //Do your code for uploading he

这是我上传PNG格式图像的代码。现在代替PNG,我希望它只上传Word文件。如何编写仅上载Word文件的条件?

您可以使用


如果构建允许的文件类型的数组,如下所示:

$filename = basename($_FILES['uploaded_file']['name']);
$ext = substr($filename, strrpos($filename, '.') + 1);
if ($ext == ".doc"){
   //Do your code for uploading here

}
然后,您可以使用_array中的
对该数组进行测试

$onlyAllow = array();
$onlyAllow[] = 'image/png';
$onlyAllow[] = 'application/msword'
$onlyAllow[] = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';   //Word .docx

当您需要添加一个新的允许文件时,只需将其添加到数组中。

而不是只查看扩展名,您可以通过查看MIME类型获得更严格的限制。Stackoverflow有很多关于这个问题的帖子。例如和


特别是最后一篇文章提供了一些关于Office新版本的有用信息。在这里,文档实际上是压缩的zip文件,这意味着MIME类型被错误地标识为zip

您想在他们开始上载之前或在文件已上载到您的服务器之后停止他们吗?
$onlyAllow = array();
$onlyAllow[] = 'image/png';
$onlyAllow[] = 'application/msword'
$onlyAllow[] = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';   //Word .docx
if(isset($_POST["upload"])) {
    if( ($_FILES['file']['name']!='') && ($_FILES['file']['type']in_array($onlyAllow)) {
        $filepath=rand(1111,9999).$_FILES['file']['name'];
        move_uploaded_file($_FILES['file']['tmp_name'],'quotations/'.$filepath);
    }
}