Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Subir imagenes con PHP

Estas en el tema de Subir imagenes con PHP en el foro de PHP en Foros del Web. Tengo el siguiente código para subir imágenes desde un formulario. Si lo ejecuto en localhost, o sea desde AppServ, si se ejecuta correctamente y puedo ...
  #1 (permalink)  
Antiguo 18/08/2013, 18:29
 
Fecha de Ingreso: agosto-2013
Mensajes: 6
Antigüedad: 10 años, 7 meses
Puntos: 0
Pregunta Subir imagenes con PHP

Tengo el siguiente código para subir imágenes desde un formulario. Si lo ejecuto en localhost, o sea desde AppServ, si se ejecuta correctamente y puedo subir imágenes.
Aquí el código, más abajo les explico el error.

Código:
<?php
@session_start();
$usuario= $_SESSION['usuario'];
$uploadedfileload="true";
$uploadedfile_size=$_FILES['uploadedfile'][size];
echo $_FILES[uploadedfile][name];
if ($_FILES[uploadedfile][size]>200000)
{$msg=$msg."El archivo es mayor que 200KB, debes reduzcirlo antes de subirlo<BR>";
$uploadedfileload="false";}

if (!($_FILES[uploadedfile][type] =="image/jpeg" OR $_FILES[uploadedfile][type] =="image/png"))
{$msg=$msg." Tu archivo tiene que ser JPG o GIF. Otros archivos no son permitidos<BR>";
$uploadedfileload="false";}

$file_name="perfil.jpg";
$add="usuarios/$_SESSION[usuario]/$file_name";
if($uploadedfileload=="true"){

if(move_uploaded_file ($_FILES[uploadedfile][tmp_name], $add)){
echo " Ha sido subido satisfactoriamente";
}else{echo "Error al subir el archivo";}

}else{echo $msg;}
?>
Y al subirlo al servidor, ya intente en nixiweb y en 000webhost, me salen estos errores

BQ3m8GVCMAAFFSK.jpg Warning: move_uploaded_file(/usuarios/usuario/perfil.jpg): failed to open stream: No such file or directory in /home/user/public_html/subirimagen.php on line 19 Warning: move_uploaded_file(): Unable to move '/tmp/phpOuipJz' to '/usuarios/usuario/perfil.jpg' in /home/user/public_html/subirimagen.php on line 19 Error al subir el archivo Warning: getimagesize(/usuarios/usuario/perfil.jpg): failed to open stream: No such file or directory in /home/user/public_html/subirimagen.php on line 33 Warning: Division by zero in /home/user/public_html/subirimagen.php on line 39 Warning: Division by zero in /home/user/public_html/subirimagen.php on line 47 Warning: imagecreatetruecolor(): Invalid image dimensions in /home/user/public_html/subirimagen.php on line 70 Warning: imagecopyresampled() expects parameter 1 to be resource, boolean given in /home/user/public_html/subirimagen.php on line 72 Warning: imagecopy() expects parameter 2 to be resource, boolean given in /home/user/public_html/subirimagen.php on line 73 Warning: imagejpeg(): Unable to open '/usuarios/usuario/miniatura.jpg' for writing: No such file or directory in /home/user/public_html/subirimagen.php on line 76

Inlcuso intente cambiar la ruta por la direccion completa de la página. El caso es que en AppServ todo va de maravilla, y en el servidor me salen esos errores. Será una configuración del servidor? Muchas gracias.
  #2 (permalink)  
Antiguo 19/08/2013, 00:22
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 4 meses
Puntos: 84
Respuesta: Subir imagenes con PHP

No such file or directory en la linea 19

¿el directorio que indicas (usuarios/$_SESSION[usuario]/$file_name) existe en el servidor?

Warning: getimagesize en la linea 33

¿qué hay en tu linea 33 del código?

Warning: Division by zero en la linea 39 y 47

¿qué hay en tus lineas 39 y 47?



y así con todos los warning que tienes.

procura señalar las lineas en las que te indica errores y utilizar el highlight correspondiente (PHP en este caso), sino es imposible ayudarte.
__________________
Ayúdame a hacerlo por mi mismo.
  #3 (permalink)  
Antiguo 19/08/2013, 08:04
 
Fecha de Ingreso: enero-2012
Ubicación: <?php echo"Los teques"; ?>/////estado miranda
Mensajes: 196
Antigüedad: 12 años, 2 meses
Puntos: 9
Respuesta: Subir imagenes con PHP

Lo de division by 0, y getimagesize, el error es por que no la sube, y que tamaño dividira o recogera php?, intenta viendo si existe la carpeta, si no existe, creala con php al registrarse el usuario con mkdir...


este ejemplo la creara a la hora de subir el archivo, recuerda ponerlo antes de moveuploadfile
Código PHP:
Ver original
  1. $nombre_fichero = '/usuarios/'.$_SESSION[usuario]/;
  2.  
  3. if (!file_exists($nombre_fichero)) {
  4.      mkdir($nombre_fichero, 7777);
  5. }

no lo he probado, pero deberia funcionar... creo.
  #4 (permalink)  
Antiguo 19/08/2013, 12:57
 
Fecha de Ingreso: agosto-2013
Ubicación: queretaro
Mensajes: 78
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Subir imagenes con PHP

hola buenas tardes de hecho acabo de aser eso que tu quieres, utilizo 2 hojas imagen.php y imagen2.php , en las cuales yo lo que hago es que utilizo en la primera hoja el siguiente codigo en donde utilizo un formulario y un file

hoja1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<form action="imagen2.php" method="post" enctype="multipart/form-data" name="form1" id="form1">

Seleccionar imagen
<label>
<input type="file" name="file" />
</label>
<p>
<label>
<input type="submit" name="Submit" value="Guardar" />
</label>
</p>
</form>
</body>
</html>


despues en la hoja 2 recibo los parametros y queda de la siguiente forma:

<?php

mysql_connect("localhost","root","tu contraseña");
mysql_select_db("nombre de tu base de datos");

$rutfoto = $_FILES["file"]["tmp_name"];
$tamaniofoto = $_FILES["file"]["size"];
$tipofoto = $_FILES["file"]["type"];
$nombref = $_FILES["file"]["name"];
$nombrefoto = $id.$nombref;
$destinofoto = "Imagenes/".$nombrefoto; //aqui guardo la imagen en una carpeta al mismo tiempo, en mi caso se llama "Imagenes/, tu le acomodas el link"

mysql_query("insert into figura(link) values ('$destinofoto')") or die(mysql_error());

if(mysql_affected_rows()){
print "Se ha subido una imagen";
copy($rutfoto, $destinofoto);
}else{
print "No se ha podido subir";
}
echo "<br><br>";
echo "USTED INSERTO UNA IMAGEN:";
echo "<br><br>";
echo "$nombrefoto";


?>

y listo

Etiquetas: Ninguno
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 08:54.