Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 注意:未定义索引:文件上传视频_Php_Html_Html5 Video - Fatal编程技术网

Php 注意:未定义索引:文件上传视频

Php 注意:未定义索引:文件上传视频,php,html,html5-video,Php,Html,Html5 Video,我正在尝试将视频上载到我的上载文件夹。我从这里的另一个问题中得到了代码,效果很好。但我一直收到这个通知错误,我不知道如何修复它。我一整天都在努力。我试着检查它是否是isset(),但仍然不起作用。有人能帮我吗 <?php $allowedExts = array("jpg", "jpeg", "gif", "png", "mp3", "mp4", "wma"); $_FILES = $_FILES['file']; $extension = pathinfo($_FILES['file'

我正在尝试将视频上载到我的上载文件夹。我从这里的另一个问题中得到了代码,效果很好。但我一直收到这个通知错误,我不知道如何修复它。我一整天都在努力。我试着检查它是否是
isset()
,但仍然不起作用。有人能帮我吗

<?php

$allowedExts = array("jpg", "jpeg", "gif", "png", "mp3", "mp4", "wma");
$_FILES = $_FILES['file'];
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
$unique = date('Y-m-d_H-i-s');

if ((null !==($_FILES["file"]["type"] == "video/mp4")
    || (null !==($_FILES["file"]["type"] == "audio/mp3"))
    || ($_FILES["file"]["type"] == "audio/wma")
    || ($_FILES["file"]["type"] == "image/pjpeg")
    || ($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg"))

&& ($_FILES["file"]["size"] < 2000000)
&& in_array($extension, $allowedExts)) {

    if ($_FILES["file"]["error"] > 0) {

        echo "Return Code: " . $_FILES["file"]["error"] . "<br />";

    } else {

    echo 'File uploaded successfully';

    if (file_exists("upload/" . $_FILES["file"]["name"])) {

        echo $_FILES["file"]["name"] . " already exists. ";

    } else {

        $datetime = date('Y-m-d_H-i-s');

        move_uploaded_file($_FILES["file"]["tmp_name"],
        "uploads/" . $_FILES["file"]["name"] . $datetime . md5($_FILES["file"]["name"]));

    }
    }

} else {

    echo "Invalid file";
}
?>

<form action="profile.php" id="videoupload" method="post" enctype="multipart/form-data">

<label for="file"><span>Filename:</span></label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />

</form>

文件名:

$\u文件['file'] 表示您的输入类型=名为“file”的文件。如果没有名为“file”的输入,则会收到一个未定义索引通知。 如果你有

$_FILES = $_FILES['file']; $\u FILES=$\u FILES['file']; 这将给其他代码带来错误。因为它试图覆盖$\u文件

$\u文件['file'] 表示您的输入类型=名为“file”的文件。如果没有名为“file”的输入,则会收到一个未定义索引通知。 如果你有

$_FILES = $_FILES['file']; $\u FILES=$\u FILES['file'];
这将给其他代码带来错误。因为它试图覆盖$\u文件

您试图在上载文件之前处理文件上载。你必须先检查一下表格是否已张贴

<?php

if (isset($_FILES['file'])) {
    $allowedExts = array("jpg", "jpeg", "gif", "png", "mp3", "mp4", "wma");
    // $_FILES = $_FILES['file'];  // <-- remove this line
    $extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
    $unique = date('Y-m-d_H-i-s');

    if ((null !==($_FILES["file"]["type"] == "video/mp4")
        || (null !==($_FILES["file"]["type"] == "audio/mp3"))
        || ($_FILES["file"]["type"] == "audio/wma")
        || ($_FILES["file"]["type"] == "image/pjpeg")
        || ($_FILES["file"]["type"] == "image/gif")
        || ($_FILES["file"]["type"] == "image/jpeg"))

    && ($_FILES["file"]["size"] < 2000000)
    && in_array($extension, $allowedExts)) {

        if ($_FILES["file"]["error"] > 0) {

            echo "Return Code: " . $_FILES["file"]["error"] . "<br />";

        } else {

            echo 'File uploaded successfully';

            if (file_exists("upload/" . $_FILES["file"]["name"])) {

                echo $_FILES["file"]["name"] . " already exists. ";

            } else {

                $datetime = date('Y-m-d_H-i-s');

                move_uploaded_file($_FILES["file"]["tmp_name"],
                "uploads/" . $_FILES["file"]["name"] . $datetime . md5($_FILES["file"]["name"]));

            }
        }

    } else {

        echo "Invalid file";
    }
}
?>

<form action="profile.php" id="videoupload" method="post" enctype="multipart/form-data">

<label for="file"><span>Filename:</span></label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />

</form>

文件名:


您试图在上载文件之前处理文件上载。你必须先检查一下表格是否已张贴

<?php

if (isset($_FILES['file'])) {
    $allowedExts = array("jpg", "jpeg", "gif", "png", "mp3", "mp4", "wma");
    // $_FILES = $_FILES['file'];  // <-- remove this line
    $extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
    $unique = date('Y-m-d_H-i-s');

    if ((null !==($_FILES["file"]["type"] == "video/mp4")
        || (null !==($_FILES["file"]["type"] == "audio/mp3"))
        || ($_FILES["file"]["type"] == "audio/wma")
        || ($_FILES["file"]["type"] == "image/pjpeg")
        || ($_FILES["file"]["type"] == "image/gif")
        || ($_FILES["file"]["type"] == "image/jpeg"))

    && ($_FILES["file"]["size"] < 2000000)
    && in_array($extension, $allowedExts)) {

        if ($_FILES["file"]["error"] > 0) {

            echo "Return Code: " . $_FILES["file"]["error"] . "<br />";

        } else {

            echo 'File uploaded successfully';

            if (file_exists("upload/" . $_FILES["file"]["name"])) {

                echo $_FILES["file"]["name"] . " already exists. ";

            } else {

                $datetime = date('Y-m-d_H-i-s');

                move_uploaded_file($_FILES["file"]["tmp_name"],
                "uploads/" . $_FILES["file"]["name"] . $datetime . md5($_FILES["file"]["name"]));

            }
        }

    } else {

        echo "Invalid file";
    }
}
?>

<form action="profile.php" id="videoupload" method="post" enctype="multipart/form-data">

<label for="file"><span>Filename:</span></label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />

</form>

文件名:


我首先要看的地方是
$\u FILES=$\u FILES['file']行。你这样做可能是有原因的,但你的脚本的其余部分表现得好像没有发生过一样。@rickdenhaan当我保持这条线时,我得到这条信息的唯一地方就是那条线上。当我移动它时,我会在大约3个其他地方收到消息。好的,这意味着
$\u FILES['file']
在脚本开头不存在,并且该行不会意外地破坏它。然后问题似乎出现在向这个脚本提供文件上传的任何东西上,比如带有
的表单或一段javascript。你能把那部分代码添加到你的问题中吗?@rickdenhaan我刚刚更新了它只是为了澄清:表单就这样在同一个文件中?如果是这样的话,我假设您在尚未提交表单时,在
$\u FILES=$\u FILES['file']
行上收到通知,并且在提交表单后,您仍然会收到通知,但在另一行(我猜是pathinfo()行),对吗?我首先要看的是
$\u FILES=$\u FILES['file']行。你这样做可能是有原因的,但你的脚本的其余部分表现得好像没有发生过一样。@rickdenhaan当我保持这条线时,我得到这条信息的唯一地方就是那条线上。当我移动它时,我会在大约3个其他地方收到消息。好的,这意味着
$\u FILES['file']
在脚本开头不存在,并且该行不会意外地破坏它。然后问题似乎出现在向这个脚本提供文件上传的任何东西上,比如带有
的表单或一段javascript。你能把那部分代码添加到你的问题中吗?@rickdenhaan我刚刚更新了它只是为了澄清:表单就这样在同一个文件中?如果是这种情况,我假设您在尚未提交表单时,在
$\u FILES=$\u FILES['file']
行上收到通知,并且在提交表单后,您仍然会收到通知,但在另一行(我猜是pathinfo()行),对吗?