无法上传视频文件

时间:2018-10-27 20:02:13

标签: php

我目前正在使用此代码来上传视频和图像,图像可以正常工作,但视频却不能。

如果MP4 ||| AVI || WEBM || AVI必须排在第一个,但不是。你们可以帮我吗?我被困在这里

if(is_array($_FILES)) {

            foreach ($_FILES['file']['name'] as $name => $value){
                if(is_uploaded_file($_FILES['file']['tmp_name'][$name])) {

                    $name= $_FILES['file']['name'][$name];
                    $tmp_name= $_FILES['file']['tmp_name'][$name];
                    $position= strpos($name, ".");
                    $fileextension= substr($name, $position + 1);
                    $fileextension= strtolower($fileextension);

                    if (($fileextension == "mp4") && ($fileextension == "ogg") && ($fileextension == "webm")) {

                        $sourcePath = $_FILES['file']['tmp_name'][$name];
                        $file_parts = pathinfo($_FILES["file"]["name"][$name]);
                        $file_ext = pathinfo($_FILES["file"]["name"][$name]);

                        $targetPath = "../users/".$this->uid."/post/".$this->convertemail($filename) . "_" . $this->keys() . "_" . round(microtime(true)) . substr(md5(rand()), 0, 4) . "." .$file_ext['extension'];
                        move_uploaded_file($sourcePath, $targetPath);

                    } else {

                        $sourcePath = $_FILES['file']['tmp_name'][$name];
                        $filename=$_FILES["file"]["tmp_name"][$name];
                        $file_ext = pathinfo($_FILES["file"]["name"][$name]);

                        $targetPath = "../users/".$this->uid."/post/".$this->convertemail($filename) . "_" . $this->keys() . "_" . round(microtime(true)) . substr(md5(rand()), 0, 4) . "." .$file_ext['extension'];
                        $d = $this->compress($sourcePath, $targetPath, 90);
                    }


                }
            }
        }

2 个答案:

答案 0 :(得分:0)

$items = array();

            foreach ($_FILES['file']['name'] as $name => $value){
                if(is_uploaded_file($_FILES['file']['tmp_name'][$name])) {


                    $sourcePath = $_FILES['file']['tmp_name'][$name];
                    $filename=$_FILES["file"]["tmp_name"][$name];
                    $file_ext = pathinfo($_FILES["file"]["name"][$name]);

                    $items[] = $file_ext['extension'];
                    $allowed_vid = array("webm","mp4");


                    $targetPath = "../users/".$this->uid."/post/".$this->convertemail($filename) . "_" . $this->keys() . "_" . round(microtime(true)) . substr(md5(rand()), 0, 4) . "." .$file_ext['extension'];


                    if(!empty($this->in_array_any( $items, $allowed_vid ))) {
                        move_uploaded_file($sourcePath, $targetPath);
                    } else {
                        $d = $this->compress($sourcePath, $targetPath, 90);
                    }



                }
            }

答案 1 :(得分:0)

在此代码行中用“或”替换“ &&”:

if (($fileextension == "mp4") && ($fileextension == "ogg") && ($fileextension == "webm")) {