【问题标题】:videos not getting uploaded on server视频没有上传到服务器
【发布时间】:2015-11-26 10:05:58
【问题描述】:

我有一个表单,用户可以通过它上传视频并将它们存储在服务器文件夹中

<form action="insertvideo.php" method="post" class="form-horizontal form-bordered"  enctype="multipart/form-data">
    <input type="file" name="file" id="file" /> 
    <button type="submit" value="submit" name="submit" class="btn green"><i class="fa fa-check"></i> Submit</button>
</form>

插入video.php页面

<?php
$allowedExts = array("mp3", "mp4", "wma");
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);

if ((($_FILES["file"]["type"] == "video/mp4")
|| ($_FILES["file"]["type"] == "audio/mp3")
|| ($_FILES["file"]["type"] == "audio/wma"))
&& in_array($extension, $allowedExts))
    {
        if ($_FILES["file"]["error"] > 0)
            {
                echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
            }
        else
            {
                echo "Upload: " . $_FILES["file"]["name"] . "<br />";
                echo "Type: " . $_FILES["file"]["type"] . "<br />";
                echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
                echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

                if (file_exists("extra/" . $_FILES["file"]["name"]))
                    {
                        echo $_FILES["file"]["name"] . " already exists. ";
                    }
                else
                    {
                        move_uploaded_file($_FILES["file"]["tmp_name"],
                        "extra/" . $_FILES["file"]["name"]);
                        echo "Stored in: " . "extra/" . $_FILES["file"]["name"];
                    }
            }
    }
else
    {
        echo "Invalid file";
    }
?>

我有 2 个 .MP4 格式的视频,一个较小,另一个较大。出于测试目的,我没有放置任何检查视频大小的代码,但仍然没有上传更大尺寸的视频。

谁能告诉我为什么会这样

【问题讨论】:

    标签: php video file-upload


    【解决方案1】:
    <?php
        $new_path = '.extra/';
        $target_file = $new_path . basename($_FILES["file"]["name"]);
        $ext = pathinfo($target_file,PATHINFO_EXTENSION);
    
        $allowed_ext = array("mp3", "mp4", "wma");
    
        if (in_array($target_file, $allowed_ext))    {
    
            if(file_exists("extra/" . $_FILES["file"]["name"]))
            {
                echo $_FILES["file"]["name"] . " already exists. ";
            }
            else
            {
                move_uploaded_file($_FILES["file"]["tmp_name"], "extra/".$_FILES["file"]["name"].$ext);
    
                echo "Stored in: " . "extra/" . $_FILES["file"]["name"];
            }
    
        }
        else
        {
            echo "Invalid file";
        }
    ?>
    

    php.ini

    file_uploads=On
    upload_max_filesize=20M
    

    PHP in_array() Function

    【讨论】:

    • 它仍然无法正常工作,我已经编辑了我的帖子的最后一部分,请您看一遍
    • 我收到了这个回复。上传:video.mp4 类型:大小:0 Kb 临时文件:存储在:extra/video.mp4
    • 在 php ini file_upload 开启??
    【解决方案2】:

    增加 php.ini 中的最大上传大小和帖子大小

    ini_set('upload_max_filesize', '400M');
    post_max_size = 10M
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-02
      • 2011-10-09
      • 2016-06-09
      相关资源
      最近更新 更多