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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
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 {
echo '<p class="msg_error">Seules les fichiers jpg qui ont une taille inférieurs ou égal à 70 000 000 Octets sont autorisés.</p>';
$error++;
}
}
else {
$error++;
}
}
if($error == 0) {
return true;
}
else {
return false;
}
}
public function createImageData(Image $image) {
try {
$sql = 'INSERT INTO images(title, descr, filename) VALUES(:title, :descr, :filename)';
$stmnt = $this->db->prepare($sql);
$title = htmlspecialchars($image->getTitle());
$descr = htmlspecialchars($image->getDescr());
$filename = htmlspecialchars($image->getFilename());
$stmnt->bindParam(':title', $title);
$stmnt->bindParam(':descr', $descr);
$stmnt->bindParam(':filename', $filename);
$stmnt->execute();
}
catch(PDOException $e) {
echo 'Une erreur est survenue lors de l\'insertion des données dans la base. ' . $e->getMessage();
}
}
public function readImageData($filename) {
try {
$sql = 'SELECT id, title, descr, filename FROM images WHERE filename = :filename';
$stmnt = $this->db->prepare($sql);
$stmnt->execute(array(
":filename" => $filename
));
$count = $stmnt->rowCount();
if($count > 0) {
return $stmnt->fetch();
}
else {
return false;
}
}
catch(PDOException $e) {
echo 'Une erreur est survenue lors de la récupération d\'une des données dans la base. Message d\'erreur : ' . $e->getMessage();
}
}
} |
Partager