Problème script upload de fichier

Bonjour.

J’ai réalisé un petit script pas bien méchant d’upload de fichier sur mon ftp, mais j’ai une erreur que je n’arrive pas à régler.

Voici mon script :

<form method="POST" action="index.php" enctype="multipart/form-data">
<p>Morceau (Format MP3 < 20 Mo):</p>
<p><input type="file" name="morceau" /></p>
<p><input type="submit" value="Ajouter le morceau" /></p>
</form>

<?php

/* On prends les identifiants de connexion à partir du fichier config */
require("config.inc.php");

/* On les utilise pour se connecter à la base de donnée */
mysql_connect($host, $username, $password);
mysql_select_db($bdd_name);

if(isset($_FILES['morceau']) && !empty ($_FILES['morceau']))
{

$extension = strrchr($_FILES['morceau']['name'], '.');
if($extension != '.mp3')
{
$erreur = 'Vous devez uploader un fichier de type MP3.';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on commence l'upload
{


move_uploaded_file($_FILES['morceau']['tmp_name'],'./Musique/');
// Ensuite on va ajouter le morceau à la base de donnée quand même, en htmlentitiesant le nom du morceau =) 


mysql_query('INSERT INTO musique VALUES("", "'.$_SESSION['pseudo'].'", "'.mysql_real_escape_string(htmlentities($_FILES['morceau']['name'])).'")') or die(mysql_error());
echo '<p><strong>*** Le morceau a bien été ajouté ***</strong></p>';


} // Fin de il n'y a pas d'erreur

} // Fin de l'upload

Cependant, il y a apparemment un problème avec move_uploaded_file puisque j’ai cette erreur que je n’arrive pas à décrypter :

Warning: move_uploaded_file(./Musique/) [function.move-uploaded-file]: failed to open stream: Is a directory in /homepages/15/d187216619/htdocs/index.php on line 89

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move ‘/tmp/phpxsMtls’ to ‘./Musique/’ in /homepages/15/d187216619/htdocs/index.php on line 89

Voilà si vous avez la solution, ca serait chouette ^^ Merci :slight_smile:

move_uploaded_file($_FILES[‘morceau’][‘tmp_name’],’./Musique/’);

essai peut etre sans le " ./" , genre

move_uploaded_file($_FILES[‘morceau’][‘tmp_name’],‘Musique/’);

Bien sur je pars du principe que t’as bel et bien créé un dossier Musique au BON endroit. :slight_smile:
Edité le 15/11/2008 à 16:04

J’ai essayé. J’ai aussi mis ‘Musique/’.$_FILES[‘morceau’][‘name’]
car j’ai vu un exemple ou c’était comme ca. Bon ca marche toujours pas mais je n’ai plus l’erreur.
On m’a aussi dit que ca pouvait venir des droits des dossiers ou fichiers mais je ne vois pas vraiment comment arranger ca :S
Surtout que j’avais déjà fait un script d’upload d’image qui n’avait aucun problème de droits sur le même hébergeur. :wink:

Si tu veux que ton fichier soit uploader avec son propre nom, dans le dossier musique, le deuxieme parametre ressemble à

‘Musique/’ . basename($_FILES[‘monfichier’][‘name’])

PS : UN pti conseil, rajoute des echo a chaque étape, comme ca tu poura voir par ou ca passe, ou ca plante etc, plus facile de trouver l’erreur (si tu confirme que ton hébergeur accepte)

Question : Quel est ton hebergeur ? Es tu sur que la taille du fichier que tu upload ne dépasse pas la taille des upload autorisés par l’hebergeur , genre Free c’est 2Mo il me semble, donc pour une musique, c’est pas suffisant :slight_smile: (si c’est pas 2Mo, je sais que c’est pas assez, j’ai deja testé )
Edité le 15/11/2008 à 23:14

Salut,

as tu vérifié les droits du dossier Musique? (clic droit sur le dossier avec ton client ftp et tu met en 777 pour voir)
Edité le 17/12/2008 à 23:24