Foros del Web » Programando para Internet » PHP »

error en subir fotos con mysql

Estas en el tema de error en subir fotos con mysql en el foro de PHP en Foros del Web. Hola: Tengo el siguiente script que, cuando lo ejecuto, me da error en "imagejpeg($thumb, NAMETHUMB);" y me dice que no se abre y la verdad ...
  #1 (permalink)  
Antiguo 20/02/2011, 04:03
 
Fecha de Ingreso: septiembre-2006
Ubicación: Torrevieja (Alicante)
Mensajes: 59
Antigüedad: 17 años, 6 meses
Puntos: 1
error en subir fotos con mysql

Hola:

Tengo el siguiente script que, cuando lo ejecuto, me da error en "imagejpeg($thumb, NAMETHUMB);" y me dice que no se abre y la verdad es que no se porque puede ser. en otras ocasiones me funcionó bien.

¿me podéis ayudar?

<?php
// Verificamos que el formulario no ha sido enviado aun
$postback = (isset($_POST["enviar"])) ? true : false;
if($postback){
// Nivel de errores
error_reporting(E_ALL);
// Constantes
# Altura de el thumbnail en pÃxeles
define("ALTURA", 60);
# Nombre del archivo temporal del thumbnail
//define("NAMETHUMB", "/tmp/thumbtemp"); //Esto en servidores Linux, en Windows podrÃa ser:
define("NAMETHUMB", "C:/windows/temp/thumbtemp"); //y te olvidas de los problemas de permisos
# Servidor de base de datos
define("DBHOST", "localhost");
# nombre de la base de datos
define("DBNAME", "root");
# Usuario de base de datos
define("DBUSER", "");
# Password de base de datos
define("DBPASSWORD", "");
// Mime types permitidos
$mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
// Variables de la foto
$name = $_FILES["foto"]["name"];
$type = $_FILES["foto"]["type"];
$tmp_name = $_FILES["foto"]["tmp_name"];
$size = $_FILES["foto"]["size"];
$idd = 0;
// Verificamos si el archivo es una imagen válida
if(!in_array($type, $mimetypes))
die("El archivo que subiste no es una imagen valida");
// Creando el thumbnail
switch($type) {
case $mimetypes[0]:
case $mimetypes[1]:
$img = imagecreatefromjpeg($tmp_name);
break;
case $mimetypes[2]:
$img = imagecreatefromgif($tmp_name);
break;
case $mimetypes[3]:
$img = imagecreatefrompng($tmp_name);
break;
}
$datos = getimagesize($tmp_name);
$ratio = ($datos[1]/ALTURA);
$ancho = round($datos[0]/$ratio);
$thumb = imagecreatetruecolor($ancho, ALTURA);
imagecopyresized($thumb, $img, 0, 0, 0, 0, $ancho, ALTURA, $datos[0], $datos[1]);
switch($type) {
case $mimetypes[0]:
case $mimetypes[1]:
imagejpeg($thumb, NAMETHUMB);
break;
case $mimetypes[2]:
imagegif($thumb, NAMETHUMB);
break;
case $mimetypes[3]:
imagepng($thumb, NAMETHUMB);
break;
}
// Extrae los contenidos de las fotos
# contenido de la foto original
$fp = fopen($tmp_name, "rb");
$tfoto = fread($fp, filesize($tmp_name));
$tfoto = addslashes($tfoto);
fclose($fp);
# contenido del thumbnail
$fp = fopen(NAMETHUMB, "rb");
$tthumb = fread($fp, filesize(NAMETHUMB));
$tthumb = addslashes($tthumb);
fclose($fp);
// Borra archivos temporales si es que existen
@unlink($tmp_name);
@unlink(NAMETHUMB);
// Guardamos todo en la base de datos
#nombre de la foto
$nombre = $_POST["nombre"];
$link = mysql_connect("localhost", "root", "") or die(mysql_error($link));;
mysql_select_db("muestrario", $link) or die(mysql_error($link));
$ssql = mysql_query("SELECT referencia FROM temas WHERE tema = '$tema'");
while ($row = mysql_fetch_array($ssql)) {$idd = $row["idtema"];}
$sql = "INSERT INTO fotografia (nombre, foto, thumb, mime, idtema) VALUES('$nombre', '$tfoto', '$tthumb', '$type', '$idd')";
mysql_query($sql, $link) or die(mysql_error($link));
echo '<span class="Estilo3" COLOR="#FFFFFF">FOTOS GUARDADAS</span>';
echo '<B><a href = "alta_fotografia.php"><span class="Estilo3">Volver</B></a></span>';
exit();
}
?>
  #2 (permalink)  
Antiguo 20/02/2011, 05:54
 
Fecha de Ingreso: septiembre-2006
Ubicación: Torrevieja (Alicante)
Mensajes: 59
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: error en subir fotos con mysql

En el error me indica permiso denegado.

Etiquetas: fotos, mysql, subir
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:03.