2015-12-15 81 views
0

我真的很绝望在这个问题上。我已经发现一些其他线程考虑这个问题,但我没有找到一个解决方案。MP3/MP4 PHP上传不起作用

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

EDIT 3: 在参照this,存在一些更多的限制我们必须考虑:

post_max_size 
upload_max_filesize 
memory_limit 

所以bluesky的想法是在正确的方向。

+0

请在upload.php第3行显示代码 – bluesky

+0

第3行是我已经插入的php代码的第一行 – yesfabime

+0

您能显示html表单代码吗? – Magna

回答

2

我觉得你的MP3,MP4文件太大,你可以在php.ini检查Maximum allowed size for uploaded file,默认就可以上传文件,2MB,改变upload_max_filesize并重新启动服务器

+0

我已经将此设置为32mb的限制。对不起,我忘了提及它。 – yesfabime

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

他无法读取'#file'标签...: 未捕获TypeError:无法读取未定义的属性'文件' – yesfabime

+1

“#file”是id不是标签。在那个地方给图像 – arun