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
Code : Tout sélectionnerclass 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;
}
}
admin/create-image.php
Code : Tout sélectionner<?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>
process/process-create-image.php
Code : Tout sélectionnerif(!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>';
}
}
}
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
[code]
class 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]
admin/create-image.php
[code]
<?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]
process/process-create-image.php
[code]
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>';
}
}
}
[/code]