2010-09-29 23 views
0

Après avoir regardé autour de Google pendant un certain temps, je suis coincé =/Quelqu'un pourrait-il m'aider s'il vous plaît?script PHP pour télécharger des fichiers mp3 ne jouent pas à la balle

Semble fonctionner avec la plupart des fichiers que j'essaie, sauf les fichiers .mp3.

Le (X) HTML

<html> 
<body> 
    <form enctype="multipart/form-data" action="upload.php" method="post"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="71680000" /> 
    Choose a file to upload: <input name="uploaded_file" type="file" /> 
    <input type="submit" value="Upload" /> 
    </form> 
</body> 
</html> 

Le PHP

<?php 
//Сheck that we have a file 
if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) { 
    //Check file extension and size 
    $filename = basename($_FILES['uploaded_file']['name']); 
    $ext = substr($filename, strrpos($filename, '.') + 1); 
    if (($ext == "mp3") && ($_FILES["uploaded_file"]["type"] == "audio/mpeg") && 
    ($_FILES["uploaded_file"]["size"] < 71680000)) { 
    //Determine the path to which we want to save this file 
     $newname = dirname(__FILE__).'/up/'.$filename; 
     //Check if the file with the same name is already exists on the server 
     if (!file_exists($newname)) { 
     //Attempt to move the uploaded file to it's new place 
     if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'],$newname))) { 
      echo "It's done! The file has been saved as: ".$newname; 
     } else { 
      echo "Error: A problem occurred during file upload!"; 
     } 
     } else { 
     echo "Error: File ".$_FILES["uploaded_file"]["name"]." already exists"; 
     } 
    } else { 
    echo "Error: Only .mp3 files under are accepted for upload"; 
    } 
} else { 
echo "Error: No file uploaded"; 
} 
?> 

Edit: Ceci est la sortie de var_dump ($ _ FILES);

array(1) { 
    ["uploaded_file"]=> 
    array(5) { 
    ["name"]=> 
    string(17) "03-AsWeTravel.mp3" 
    ["type"]=> 
    string(0) "" 
    ["tmp_name"]=> 
    string(0) "" 
    ["error"]=> 
    int(1) 
    ["size"]=> 
    int(0) 
    } 
} 
+0

Quelles sont les erreurs? à quels problèmes faites-vous face? plus d'informations .. Lequel des échos d'erreurs obtenez-vous – Stewie

+0

Êtes-vous sûr que le type mime est audo/mpeg? – methodin

+0

Cela se produit uniquement pour les fichiers .mp3 ou d'autres types de fichiers (fichiers binaires et texte - vous pouvez modifier votre script pour accepter d'autres types de fichiers, et l'essayer avec de gros fichiers .jpg, par exemple). –

Répondre

0

De http://www.php.net/manual/en/features.file-upload.errors.php

UPLOAD_ERR_INI_SIZE 
Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini. 

Comment gérez-vous la max_file_size de la forme?

Essayez de changer

upload_max_filesize = 70M 

Ou quel que soit votre taille maximale devrait être dans votre php.ini.

+0

oui je pense qu'il doit faire quelque chose avec la taille maximale dans php.ini, j'ai copié le code sur mon localhost et il fonctionne parfaitement, le fichier mp3 est téléchargé vers le haut du dossier. – Christophe

+0

Je pense que vous avez raison. Juste vérifié phpinfo() et réalisé la taille de téléchargement de fichier max est de 2 Mo. Supposons que je peux changer cela dans le fichier .htaccess? – Dean

+0

@methodin: J'ai juste remarqué votre commentaire sur le formulaire. Merci! – Dean

0

Contrôlez-vous l'hôte? Se pourrait-il que les mp3 soient simplement bloqués?

Je l'ai déjà vu sur le plan d'hébergement web gratuit d'un FAI majeur ...

+0

Oui, j'ai le contrôle total puisque je cours sur le script sur ma propre machine. – Dean