Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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 - Fatal编程技术网

如何使用PHP上传音频文件?

如何使用PHP上传音频文件?,php,html,Php,Html,我想上传一个使用html和php的音频文件。它总是返回错误消息(无效文件)。请帮助我。 我正在关注这个网址- ; 这是我正在使用的代码- <form enctype="multipart/form-data" action="sound_action.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE"/> Choose a file to upload: <input name

我想上传一个使用html和php的音频文件。它总是返回错误消息(无效文件)。请帮助我。 我正在关注这个网址- ;

这是我正在使用的代码-

<form enctype="multipart/form-data" action="sound_action.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE"/>
    Choose a file to upload: <input name="file" type="file" /><br />
    <input type="submit" value="Upload File" />
</form>

<?php
    if ((($_FILES["file"]["type"] == "audio/mp3")
    || ($_FILES["file"]["type"] == "audio/mp4")
    || ($_FILES["file"]["type"] == "audio/wav"))
    && ($_FILES["file"]["size"] < 1000000))
    {
        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("upload/" . $_FILES["file"]["name"]))
            {
                echo $_FILES["file"]["name"] . " already exists. ";
            }
            else
            {
                move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
                echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
            }
        }
    }
    else
    {
        echo "Invalid file";
    }
?>

选择要上载的文件:

mp3的mime类型是
音频/mpeg
对于mp4,您必须使用
视频/mp4
,wave是
音频/x-wav
音频/wav


您还应该增加文件大小,因为此参数以字节为单位,1000000小于1mb。也许您还必须在php.ini中增加上载文件的大小有一种验证文件的替代方法,但这是检查文件验证的基本方法,不确定文件是否包含正确类型的not

$valid_extension = array('.mp3', '.mp4', '.wav');
$file_extension = strtolower( strrchr( $_FILES["file"]["name"], "." ) );

if( in_array( $file_extension, $valid_extension ) && 
    $_FILES["file"]["size"] < 1000000 ){
    // Rest Logic Here
}
else
{
    print_r( $_FILES );
}
$valid_extension=array('.mp3'、'.mp4'、'.wav');
$file_extension=strtolower(strrchr($_FILES[“file”][“name”],”);
if(在数组中($file_扩展名,$valid_扩展名)&&
$\u文件[“文件”][“大小”]<1000000){
//这里的Rest逻辑
}
其他的
{
打印(美元文件);
}

注意:这是一个基本的文件验证。

您缺少一个if子句:

if(isset($_POST['name_submit_button']))
{
   //Whole Logic of program
}

您是否尝试回显
$\u FILES[“file”][“type”]
以查看是否匹配?错误的文件大小如何归类为
无效文件
,错误的tut。首先检查
$\u文件[“文件”][“错误”]
,然后检查大小,然后检查键入值。如果$\u文件[“文件”][“类型”]不安全,因为它实际上是由客户端提供的,而不是实际的文件。@LozCherone Invalid仅表示无效,由实现者来决定什么是有效的,什么是无效的…@secretsquirrelits就是我所考虑的用户;P