Formulaire upload de fichier
Bonjour à tous.
C'est mon premier post sur ce forum et j'espère vous expliquer au mieux mon soucis.
J'ai un formulaire d'upload de fichier qui est fonctionnel, mais en voulant l'améliorer je tombe sur un petit problème et je ne vois pas du tout d'où cela peut venir. Voici le code du formulaire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <div id="form">
<form enctype="multipart/form-data" action="_upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000000000" />
<input id="fileBtn" type="file" name="monfichier"/><br><br><br><br>
<?php:
afficheSelect(new DirectoryIterator('/home/thibaud/Fichiers/'. $_SESSION['login'] .''), 'dossierSauvegarde');
?>
<input src="pictures/sauvegarder.jpeg" type="image" value="submit"/>
</form>
</div>
<a id="btnRetourUpload" href="accueil.php"><img src="pictures/fleche-gauche.png"></a>
<?php
function afficheSelect($it, $name) {
echo "<select name=\"$name\">\n";
for (; $it->valid(); $it->next()) {
if ($it->isDir() && !$it->isDot())
printf("\t<option value=\"%s\">%s</option>\n", $it->getFilename(), $it->getFilename());
}
echo "</select>\n";
}
?> |
L'utilisateur devrait choisir un dossier où sauvegarder son fichier grâce à un menu déroulant. Or à chaque fois il y a echec de l'upload. Voici le code de l'upload :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| $date = date("d-m-Y");
$heure = date("H:i");
$dossier = '/home/thibaud/Fichiers/' . $_SESSION['login'] . '/' . $_POST['dossierSauvegarde'] . '/';
$fichier = basename($_FILES['monfichier']['name']);
$taille_maxi = 1000000000000;
$taille = filesize($_FILES['monfichier']['tmp_name']);
if ($taille > $taille_maxi) {
$erreur = 'Le fichier est trop gros...';
}
if (!isset($erreur)) {
$fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if (move_uploaded_file($_FILES['monfichier']['tmp_name'], $dossier . $fichier)) {
echo 'Upload effectué avec succès !';
$base = mysql_connect('localhost', 'root', 'mon_mot_de_passe');
mysql_select_db('tgirard.fr.nf', $base);
$sql2 = 'SELECT id FROM user WHERE login="' . $_SESSION['login'] . '"';
$req2 = mysql_query($sql2) or die('Erreur SQL !<br />' . $sql2 . '<br />' . mysql_error());
$data = mysql_fetch_array($req2);
$id = $data['id'];
$sql = 'INSERT INTO historical_data (user_id, nom_fichier, date, heure) VALUES(' . $id . ', "' . $_FILES['monfichier']['name'] . '", "' . $date . '", "' . $heure . '")';
$req = mysql_query($sql) or die('Erreur SQL !<br />' . $sql . '<br />' . mysql_error());
mysql_free_result($req);
mysql_close();
} else {
echo 'Echec de l\'upload !<br>';
}
} else {
echo $erreur;
}
?> |
Pourtant en faisant un var_dump de la variable $dossier, le chemin est exact. J'espère avoir été clair et j'attend votre aide. :D