hola,
yo uso este codigo para subir una foto y guardarla en una carpeta del server y su ruta en la Base de datos, a demas de un titular, resumen y una noticia.
usa la parte del codigo que te haga falta, pero has de tener una Bd de MySQL con lo campos necesarios.
Código PHP:
<?php
function quitar($mensaje)
{
$nopermitidos = array("'",'\\','<','>',"\"",";","$","%","&","/","|","{","}","[","]","+","#");
$mensaje = str_replace($nopermitidos, "", $mensaje);
return $mensaje;
}
$nombre_archivo2 = quitar($_POST["nombre_archivo2"]);
mysql_connect('localhost','xxxx','xxxx')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('xxxx')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
if(isset($_FILES['fichero']['name'])) {
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {
//empieza la redimension, tomamos la imagen temporal subida
$info = getimagesize($_FILES['fichero']['tmp_name']);
//segun el caso sera jpg, gif, png
switch ($info[2]) {
case 1:
$imagen = imagecreatefromgif($_FILES['fichero'] ['tmp_name']); break;
case 2:
$imagen = imagecreatefromjpeg($_FILES['fichero'] ['tmp_name']); break;
case 3:
$imagen = imagecreatefrompng($_FILES['fichero'] ['tmp_name']); break;
// etcétera //
}
$original = $imagen;
$original_w = imagesx($original);
$original_h = imagesy($original);
$max = 175; //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS
if($original_w>$original_h) {
$muestra_w = $max;
$muestra_h = intval(($original_h/$original_w)*$max);
} else {
$muestra_w = intval(($original_w/$original_h)*$max);
$muestra_h = $max;
}
$muestra = imagecreatetruecolor($muestra_w,$muestra_h);
imagecopyresampled($muestra,$original,0,0,0,0, $muestra_w,$muestra_h,$original_w,$original_h);
imagedestroy($original); // aqui destruyo el original, pues no hace falta ya
//imagedestroy($muestra);
// me verifica haya sido cargado el archivo
$ruta_destino = "../carpeta/archivos/";
$namefinal= trim ($_FILES['fichero']['name']);//quito espacios finales o al principio del nombre si los hay
$namefinal= ereg_replace (" ", "", $namefinal);//quito los espacios entre las palabtas del nombre si los hay
$uploadfile= $ruta_destino . $namefinal;
if(imagejpeg($muestra,$uploadfile,'100')) { // se coloca en su lugar final
echo "<b>Upload exitoso!. Datos:</b><br>";
echo "Nombre: <i><a href=\"".$uploadfile."\">".$_FILES['fichero']['name']."</a></i><br>";
echo "Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
echo "Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
echo "<br><hr><br>";
// Aqui es donde tendre que insertar en la BD la variable $namefinal que con tiene el nombre del archivo sin espacios
$titular = quitar($_POST["titular"]);
$resumen = quitar($_POST["resumen"]);
$noticia1 = quitar($_POST["noticia"]);
$noticia = quitar($noticia1);
$noticia = $noticia; //cambiar el nl2br a la salida del texto mejor, y no a la entrada para inform. excell
$fecha = $_POST["fecha"];
$query = "INSERT INTO noticias (titular, resumen, noticia, imagen, fecha)
VALUES ('$titular', '$resumen' , '$noticia', '$namefinal','$fecha')";
mysql_query($query) or die(mysql_error());
echo "La noticia <b>'".$titular."'</b> ha sid registrados de manera satisfactoria.<br />";
echo "<br><hr><br>";
}else{echo "no se guardo la foto, ni se inserto el articulo en la Base de Datos";}
}else{echo "no se subio foto";}
}else{echo "no se selecciono la foto";}
?>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
<p>Imagen noticia 1:
<input name="fichero" type="file" size="150" maxlength="150">
<br>
Titular:
<input name="titular" type="text" size="46" maxlength="45" id="titular" >
</p>
<p>Resumen
<label>
<input name="resumen" type="text" id="resumen" size="150" maxlength="300">
</label>
</p>
<p><br>
Noticia:
<label>
<textarea name="noticia" id="noticia" cols="100" rows="20"></textarea>
</label>
</p>
<p>
<input type="hidden" name="fecha" id="fecha" value="<?php echo date("d-m-Y");?>">
<label></label>
<br>
</p>
<p><br>
<input name="submit" type="submit" value="Upload!">
</p>
</form> </body>
Espero que te sirva.
un saludo