upload et stockage en base de donnée
Posté : 05 févr. 2016, 10:52
bonjours à tout j'ai une petite question en faite c'est tout bête mais j'ai ce formulaire
or la quand je fait l’opération pour ajouter un fichier (obligatoirement des pdf) bin il se dépose juste dans le dossier et la requête SQL pour stocker les info dans la base de donnée (pour afficher ces fichiers pdf dans d'autre pages du site et pour les rendre consultable et téléchargeable (même si je sais pas comment on rends téléchargeable un fichier que l'on affiche ) ne s'effectue pas et donc rien ne se mets dans ma base de donnée pouvez vous me venir en aide? je ne trouve pas du tout la solution (oui je débute dans l'upload excusez moi j'y connais pratiquement rien )
<html>
<head>
<title>Ajout d'un fichier</title>
<link rel="icon" href="./image/icone.ico" />
</head>
<body>
<center>
<img src="./image/cooltext163306792130411.png"/>
<form enctype="multipart/form-data" name="fichiers" action="upload.php" method="POST" >
<div style="text-align:justify;">
<center>
<label for="service">Nom du service auquel ce fichier appartient :</label>
</br>
<select name="service">
<option>service1</option>
<option value="1">service2</option>
</select>
</br>
</br>
<input type="hidden" name="MAX_FILE_SIZE" value="524288000">
Choisissez votre document ici : <input type="file" name="fichier" />
</center>
</div>
</br>
</br>
<input type="reset" value="Annuler" /> <input type="submit" />
</form>
</center>
</body>
</html>
qui utilise cette page pour uploader
<html>
<body>
<?php
include('head.php');
include('fonctionupload.php');
$service = $_POST['service'];
$date = date('jS F Y');
$repertoire = "./upload";
//connection au serveur:
$connexion = mysqli_connect( "localhost", "root", "", "base_de_fichier") ;
if (!file_exists($repertoire))
{
mkdir ($repertoire,0700);
echo " -=> Création du repertoire $repertoire réussi<br>";
}
if(isset($_FILES['fichier'])) // si formulaire soumis
{
$content_dir = 'upload/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['fichier']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
$filename = $_FILES['fichier']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if($ext != 'pdf')
{
exit("Le fichier n'est pas un PDF,veuillez le convertir en PDF s'il vous plais!!!!!!!!!!");
}
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier']['name'];
if(preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )
{
exit("Nom de fichier non valide");
}
else if(!move_uploaded_file($tmp_file, $content_dir . $name_file))
{
exit("Impossible de copier le fichier dans $content_dir");
}
echo "Le fichier a bien été uploadé";
$chemin = ($content_dir . $name_file . $ext );
if (verifUpload($chemin, $service)==1)
{
$req = mysqli_query($connexion,"INSERT INTO file (chemin, service, date) VALUES ('$chemin','$service', '$date')");
if ($req)
{
include("head.php");
echo "Ajout à la base de donnée effectué";
echo"</br>";
echo"</br>";
echo "<A HREF='AjouterUnDocForm.php'>Ajouter un autre document</A>";
}
}
else
{
include("head.php");
echo"l'ajout à la base de donnée à échoué";
}
}
?>
</body>
</html>
et cette page est sensé faire une requête pour ajouter le chemin du fichier le service choisi (service de l'entreprise) et la date à une base de donnée après avoir uploader le fichier dans un dossier et pour vérifier si le fichier n'est pas déjà dans la base de donnée elle utilise le code suivant<?php
function verifUpload($chemin, $service)
{
if ($connexion = mysqli_connect('localhost','root','','base_de_fichier'))
{
$resultat = mysqli_query($connexion, "SELECT * FROM file WHERE chemin = '$chemin' AND service = '$service'");
if (mysqli_num_rows($resultat)==0)
{
return 1;
}
else
{
return 0;
}
}
}
?> or la quand je fait l’opération pour ajouter un fichier (obligatoirement des pdf) bin il se dépose juste dans le dossier et la requête SQL pour stocker les info dans la base de donnée (pour afficher ces fichiers pdf dans d'autre pages du site et pour les rendre consultable et téléchargeable (même si je sais pas comment on rends téléchargeable un fichier que l'on affiche ) ne s'effectue pas et donc rien ne se mets dans ma base de donnée pouvez vous me venir en aide? je ne trouve pas du tout la solution (oui je débute dans l'upload excusez moi j'y connais pratiquement rien )