Какова наилучшая практика в отношении целостности, если пользователь загружает пользовательские данные вместе с файлом, где пользовательские данные хранятся в базе данных, а файл хранится в файловой системе?
На данный момент я бы сделал что-то вроде следующего фрагмента кода, используя код PHP и PDO (, который не тестировался, но я надеюсь, что вы поняли мою точку зрения ). Мне не нравится часть сохранения изображения в методе вставки User ::. Есть ли хороший способ обойти это?
<?php
User::insert($name, $image, $ext);
Class User{
static public function insert($name, $image, $ext){
$conn = DB_config::get();
$conn->beginTransaction();
$sth = $conn->prepare("
INSERT INTO users (name)
values(:name)
;");
$sth->execute(array(
":name" => $name
));
if ($conn->lastInsertId() > -1 && Image::saveImage($image, IMAGE_PATH. $conn->lastInsertId(). $ext))
$conn->commit();
else
$conn->rollback();
return $conn->lastInsertId();
}
}
Class Image{
static public function saveimage($image, $filename){
$ext = self::getExtensionFromFilename($filename);
switch($ext){
case "jpg":
case "jpeg":
return imagejpeg(imagecreatefromstring($image), $filename);
}
return false;
}
?>