MP3 / MP4 PHP上传不起作用

时间:2015-12-15 03:50:36

标签: javascript php file-upload wamp

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

我想上传一个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\4_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\4_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

因此,布鲁斯基的思想正朝着正确的方向发展。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

使用以下内容:

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);
    }
});