如果用户将用户数据与用户数据存储在数据库中的文件一起上传并且文件存储到文件系统中,那么关于完整性的最佳实践是什么?
目前,我会使用 PHP 和 PDO 执行以下代码片段(代码未经测试,但我希望你能明白我的意思)。我不喜欢 User::insert 方法中的保存图像部分。有没有解决这个问题的好方法?
<?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;
}
?>