2015-12-15 84 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