8797 sujets

Développement web côté serveur, CMS

Salut tout le monde,

Alors voila mon problème.
Je débute en PHP et j'essaye de réaliser une page qui me permet d'uploader une vidéo.
Mais je n'arrive pas a récupérer les données du fichier que j'upload.

C'est à dire que quand je clique sur le submit, le fichier se charge mais une fois chargé il ne se passe rien, je n'ai même pas le message qui me dit que l'upload a bien eu lieu.

Le print de $_FILES me retourne array() , il est vide quoi.

Quelqu'un aurait il une idée ?

<?php 
include 'connexion.php';
 ?>
<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title>NICOUPLOAD</title>
	<link rel="stylesheet" href="css/style.css">
</head>
<body>
	<?php 
	$message='Choisis un fichier et essayes de taper un nom simple et propre';
	if (!empty($_POST['submit'])) {

		extract($_POST);//permet de récuperer toute les variable du formulaire
	    
		$nomDossier =date('Y');
		#si le fichier n'existe pas on créer le dossier dans le serveur
		if (!file_exists($nomDossier)){mkdir($nomDossier, 0777);}	
		#copie l'image sur notre serveur
		move_uploaded_file($_FILES['movie']['tmp_name'], $nomDossier.'/'.$_FILES['movie']['name']);
		$link =  $nomDossier.'/'.$_FILES['movie']['name'];

		$sql="INSERT INTO fichier (id, nom, link) VALUES ('','$nom','$link')";
		#JE LANCE MA REQUETTE SQL
		mysql_query($sql) or die(mysql_error());	 
	
	 $message='ajout terminé';
	}

	 ?>
	 <pre><?php  print_r($_FILES); ?></pre>
	<div id="content" class="upload">
		 <p><?php echo $message; ?></p>
		 <form action="" method="post" accept-charset="utf-8" enctype="multipart/form-data">
       		   <p>Nom du film</br><input type="text" name="nom" value="" id="nom"></p>
       		   <input type="file" name="movie" value="" id="movie"/>	
        	   <p><input name="submit" type="submit" value="Uploader"></p>
   		</form>
   	</div>	
</body>
</html>

Modifié par webamon (11 Nov 2012 - 22:09)
point de vue sécurité, ton script est une vraie passoire.
Je pourrais très bien uploader un script PHP et l'exécuter ou faire de jolies injections SQL.

Ne l'utlise surtout pas comme tel sur ton serveur...
Modifié par xirt (14 Nov 2012 - 12:18)
Salut,

Vérifie tes paramètres Apache en relation avec le transfert de fichiers, a mon avis la valeur max doit être inférieur a la taille de ton fichier.
Comme le dit JJK801, regardes dans la configuration de ton serveur Apache (php.ini) au niveau des directives :

- upload_max_filesize : Définit la taille maximale autorisée du fichier uploadé.

- post_max_size : Définit la taille maximale des données reçues par méthode POST. Cette option affecte également les fichiers chargés.

Pour charger de gros fichiers (ce que je pense vu que ce sont des vidéos), post_max_size doit être plus grande que la valeur de upload_max_filesize .

Pour connaitre la configuration actuelle de ton serveur Apache, crée un fichier nommé "info.php" comprenant le code suivant :
<?php
	phpinfo();
?>


Il te suffit de chercher dans la liste les deux directives du dessus.