class.upload.php is a powerful and mature PHP class to manage uploaded files, and manipulate images in many ways. The script is available under a GPL license.
more info about the class
$idNoticia = $_POST['idNoticia']; $imagenNoticia_guardada = $_POST['imagenNoticia-guardada']; $imagenNoticia = $_FILES['imagenNoticia']; $tituloNoticia = $_POST['tituloNoticia']; $noticiaCorta = $_POST['noticiaCorta']; $noticiaCompleta = nl2br($_POST['noticiaCompleta']); if (empty($imagenNoticia['name'])) { $imagenNoticia = $imagenNoticia_guardada; } else { $upload = new Upload($imagenNoticia); if ($upload->uploaded) { $upload->image_resize = true; $upload->image_ratio = true; $upload->image_x = 573; //ancho $upload->image_ratio_y = true; //alto de acuerdo al ancho, mantiene perspectiva. $upload->image_watermark = '../img/watermark.png'; $upload->image_watermark_position = 'TL'; $upload->process('../img/noticias/'); if ($upload->processed) { $imagenNoticia = $upload->file_dst_name; } else { // error! } } else { // error! } } $statement = $conexion->prepare("UPDATE noticias SET tituloNoticia = :tituloNoticia, noticiaCorta = :noticiaCorta, noticiaCompleta = :noticiaCompleta, imagenNoticia = :imagenNoticia WHERE idNoticia = $idNoticia"); $statement->execute(array( ':tituloNoticia' => $tituloNoticia, ':noticiaCorta' => $noticiaCorta, ':noticiaCompleta' => $noticiaCompleta, ':imagenNoticia' => $imagenNoticia ));