- mer. 16 mars 2022 18:50
#208803
Bonsoir, je réalise un petit exercice sur les images.
Les images vont bien dans le dossier images, ainsi que les miniatures sans les accents, apostrophes et les espaces.
Mais s'insert dans la base avec tout ça.
Je vous joint mon code.
Merci d'avance et bonne soirée.
class/imageManager.php
Les images vont bien dans le dossier images, ainsi que les miniatures sans les accents, apostrophes et les espaces.
Mais s'insert dans la base avec tout ça.
Je vous joint mon code.
Merci d'avance et bonne soirée.
class/imageManager.php
Code : Tout sélectionner
admin/create-image.phpclass imageManager {
private $db;
public function __construct($db) {
$this->setDb($db);
}
public function setDb(PDO $dbh) {
return $this->db = $dbh;
}
public function upload($files) {
$upload_dir = IMAGE_DIR_PATH;
foreach($files['upload_form']['error'] as $key => $error) {
$error = 0;
if($error == UPLOAD_ERR_OK) {
$type = $files['upload_form']['type'][$key];
$size = $files['upload_form']['size'][$key];
$tmp_name = $files['upload_form']['tmp_name'][$key];
$name = $files['upload_form']['name'][$key];
$filename = $this->cleanText($name);
if(($type == 'image/jpeg') AND ($size <= 70000000)) {
if(move_uploaded_file($tmp_name, $upload_dir . $filename) === false) {
$error++;
}
else {
$this->createThumbnail($filename);
}
}
else {
$error++;
echo '<p class="msg_error">Seules les fichiers jpeg qui ont une taille inférieur
ou égal 70000000 sont autorisés';
}
}
else {
$error++;
}
}
if($error == 0) {
return true;
}
else {
return false;
}
}
Code : Tout sélectionner
process/process-create-image.php<?php
require('../include/inc-connexion.php');
require('../include/inc-config.php');
require('../class/Image.php');
require('../class/imageManager.php');
require('../process/process-create-image.php');
require('menu.php');
?>
<h1>upload</h1>
<?php if(isset($message)) echo $message ?>
<form id="upload" method="post" action="" enctype="multipart/form-data">
<p><label for="title">Titre :</label></p>
<p><input type="text" name="title_form" id="title"></p>
<p><label for="descr">Description :</label></p>
<p><textarea name="descr_form" id="descr" cols="50" rows="5"></textarea></p>
<p>Ajoutez des images</p>
<input type="file" name="upload_form[]" multiple="multiple" value="">
<input type="submit" id="submit" name="submit_form" value="Validez">
</form>
Code : Tout sélectionner
if(!empty($_FILES)) {
$manager = new imageManager($db);
$images = $manager->upload($_FILES);
if($images === true) {
$message = '<p class="msg_success">Le chargement a réussi</p>';
}
else {
$message = '<p class="msg_error">Le chargement a échoué</p>';
}
}
if(!isset($_POST['submit_form'])) {
$message = '<p class="msg_error">Aucune donnée n\'est fournie.
<a href="' . WEB_DIR_URL . 'admin/create-image.php">retour</a></p>';
}
if(isset($_POST['submit_form'])) {
$title_form = htmlspecialchars(trim($_POST['title_form']));
$descr_form = htmlspecialchars(trim($_POST['descr_form']));
if((empty($title_form)) OR (empty($descr_form))) {
$message = '<p class="msg_error">Une des informations est manquante.
<a href="' . WEB_DIR_URL . 'admin/create-image.php">retour</a></p>';
}
else {
$images_data = array(
'imgID' => 1,
'title' => $title_form,
'descr' => $descr_form,
'filename' => $_FILES['upload_form']['name'][0]
);
$image_data = new Image($images_data);
$manager = new imageManager($db);
if(!$manager->readImageData($images)) {
$image = $_FILES['upload_form']['name'][0];
$manager->cleanText($image);
$manager->createImageData($image_data);
echo '<p><a href="update-image.php">Mise à jour des données</a></p>';
print_r($_FILES);
}
else {
$message = '<p class="msg_error">Une erreur est survenue lors de l\'enregistrement
des données dans la base.<br>
Aucune information n\'a été enregistrée.</p>';
}
}
}