2014-05-03 139 views
0

我遇到問題。我正在寫一個簡單的上傳文件到服務器的表單。我可以發送任何文件沒有MP3,我不知道爲什麼。 add2.php:「跟發送文件時出錯」將MP3文件發送到服務器

{ 
    $max_size = 104857600; 
    if (is_uploaded_file($_FILES['plik']['tmp_name'])) { 
     if ($_FILES['plik']['size'] > $max_size) { 
      echo 'Error! File is too big!'; 
     } else { 
      echo 'I have file, name: '.$_FILES['plik']['name']; 
      $nazwa= $_FILES['plik']['name']; 

      mysql_query("INSERT INTO files (name) values ('{$nazwa}') "); 

      echo '<br/>'; 
      if (isset($_FILES['plik']['type'])) { 
       echo 'Typ: '.$_FILES['plik']['type'].'<br/>'; 
      } 

      move_uploaded_file($_FILES['plik']['tmp_name'], 
      $_SERVER['DOCUMENT_ROOT'].'/music/'.$_FILES['plik']['name']); 
     } 
    } else { 
     echo 'Error with sending file!'; 
    } 

當我嘗試發送MP3我得到。

編輯:

<form action="add2.php" method="POST" ENCTYPE="multipart/form-data"> 
<input type="file" name="plik"/><br/> 
<input type="submit" value="Send file"/> 
</form>'; 
+2

您的上傳代碼在哪裏?我的猜測是你沒有編碼類型。另外,你的代碼非常不安全。使用PDO或類似的準備/參數化查詢來避免SQL注入攻擊。不要讓用戶在桌面上指定文件的名稱......並且肯定不會將用戶上傳的文件保留在Web服務器的文檔根目錄中。有人可以上傳'something-evil.php'並運行任何他們想要的東西。 – Brad

+0

我插入代碼的形式 – user3084640

回答

1

我在我的機器上測試,看看:

看起來像你的MP3文件無法上傳,所以它在$_FILES陣列丟失。這可能是由於其大小與圖像文件相比。

請檢查您的php.iniupload_max_filesizepost_max_size設置,並允許比您的mp3文件更大的尺寸。

字體:How to upload mp3 files

+0

謝謝,就是這樣:) – user3084640

+0

對於那些誰讀這個:'$ _FILES [「文件」] [「類型」] ==「音頻/ MP3」;'是這個數組案例情況(鑑於你已經修復了你的php.ini內存問題)。 – Faron

相關問題