MP3 / MP4 PHP 上传失败

MP3 / MP4 PHP upload doesn't work

这个问题我真的很绝望。我已经找到了一些考虑这个问题的其他线程,但我没有找到适合我的解决方案。

我想上传 mp3 / mp4 文件。但是我目前的解决方案只上传图片。

这个问题只是关于上传 mp3/mp4 文件的核心功能——我有意识地排除了任何安全检查或类似的问题。

PHP:

if(move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES['file']['name']))
{
    echo "Successfully Uploaded Images";
}
else
{
    echo "Error while uploading";
}

JS:

file = this.files[i];

if (window.FileReader) {
    reader = new FileReader();
    reader.onloadend = function(e) {
        //showUploadedItem(e.target.result, file.fileName);
    };
    reader.readAsDataURL(file);
}
if (formdata) {
    formdata.append("file", file);
}

if (formdata) 
{
    $.ajax(
    {
        url: "upload.php",
        type: "POST",
        data: formdata,
        processData: false,
        contentType: false,
        success: function(res) 
        {
            document.getElementById("response").innerHTML = res;
        }
    });
}

编辑: 我已经将 upload_max_filesize 设置为 32 MB。

我从服务器收到了这个响应:

( ! ) Notice: Undefined index: file in C:\wamp\www\musicplayer_www\public_html_upload\upload.php on line 3
Call Stack
#   Time    Memory  Function    Location
1   0.0022  134720  {main}( )   ..\upload.php:0

( ! ) Notice: Undefined index: file in C:\wamp\www\musicplayer_www\public_html_upload\upload.php on line 3
Call Stack
#   Time    Memory  Function    Location
1   0.0022  134720  {main}( )   ..\upload.php:0

编辑 2: HTML 表格:

<div id="main">
     <h1>1. upload track to ftp</h1>
     <form method="post" enctype="multipart/form-data" action="upload.php">
     <input type="file" name="images" id="images" multiple/>

     <button type="submit" id="btn" class="btn btn-default">Upload Files!</button>
     </form>

     <div id="response"></div>
    </form>
</div>

编辑 3: 关于this,我们还需要考虑一些限制:

post_max_size
upload_max_filesize
memory_limit

所以bluesky的思路是对的

我认为你的 mp3,mp4 文件太大,你可以在 php.ini 中检查 Maximum allowed size for uploaded file,默认你可以上传 2Mb 的文件,更改 upload_max_filesize 并重新启动你的服务器

使用以下内容:

var data = new FormData();
jQuery.each(jQuery('#file')[0].files, function(i, file) {
    data.append('file-'+i, file);
});

jQuery.ajax({
    url: 'upload.php',
    data: data,
    cache: false,
    contentType: false,
    processData: false,
    type: 'POST',
    success: function(data){
        alert(data);
    }
});