Foros del Web » Programando para Internet » PHP »

subir foto con php a carpeta

Estas en el tema de subir foto con php a carpeta en el foro de PHP en Foros del Web. hola tengo un problema y me estoy volviendo loco jeje mira tengo este codigo y nose que es lo que tengo mal. Código PHP: <? ...
  #1 (permalink)  
Antiguo 28/03/2008, 03:48
Avatar de picazamora  
Fecha de Ingreso: febrero-2008
Ubicación: Zamora
Mensajes: 72
Antigüedad: 16 años, 8 meses
Puntos: 0
subir foto con php a carpeta

hola tengo un problema y me estoy volviendo loco jeje

mira tengo este codigo y nose que es lo que tengo mal.
Código PHP:
<?
if (isset($submit)){
if (
is_uploaded_file($_FILES['foto']['tmp_name']) && $_FILES['foto']['size']>1000){
    if(
move_uploaded_file($_FILES['foto']['tmp_name'], "imagen/".$_FILES['foto']['name'])){ 
    }else{
        echo 
"<p>No se pudo mover . Upload fall&oacute;!</p>";
    }
}else{
        echo 
"<p>No se pudo subir. Upload fall&oacute;!</p>";
}  }
pero cuando intento subir la imagen con el formulario me dice todo el rato que nose pudo subir la imagen.

alguien sabe que es lo que falla, la quiero subir a una carpeta.

un saludo
  #2 (permalink)  
Antiguo 28/03/2008, 04:05
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Re: subir foto con php a carpeta

Pueden ser por muchas cosas, no se, pero creo que en este if:

Código PHP:

if (is_uploaded_file($_FILES['foto']['tmp_name']) && $_FILES['foto']['size']>1000 
estas diciendo que el tamaño ha de ser mayor de 1000, la imagen no será de un tamaño menor??,
si lo que quieres es poner un maximo de bytes creo que deberia ser la comparacion alreves,

Código PHP:
if (is_uploaded_file($_FILES['foto']['tmp_name']) && $_FILES['foto']['size']<1000 
  #3 (permalink)  
Antiguo 28/03/2008, 07:32
Avatar de picazamora  
Fecha de Ingreso: febrero-2008
Ubicación: Zamora
Mensajes: 72
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: subir foto con php a carpeta

gracias pero no eso no es el problema, e pensado q puede ser algo de los permisos de las carpetas, pero ya le e dado permisos a la carpeta y nada.
alguna sugerencia mas por favor.

un saludo
  #4 (permalink)  
Antiguo 28/03/2008, 08:42
Avatar de cfranco  
Fecha de Ingreso: enero-2008
Ubicación: Barcelona - España
Mensajes: 182
Antigüedad: 16 años, 10 meses
Puntos: 6
Re: subir foto con php a carpeta

¿Usaste esta función?

copy($direccion,"images/".$archivoconextension);

Salud y Éxitos
Franco
  #5 (permalink)  
Antiguo 28/03/2008, 08:56
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 7 meses
Puntos: 2
Re: subir foto con php a carpeta

Yo tambien opino que es ese condicional, si tu dices que no es por el tamaño, cosa que te recomiendo que estudies, es por el is_uploaded_file, esa funcion te devuelve true si el archivo esta subido, si lo quieres subir es por que no esta subido, y si no esta subido esa funcion te devolvera false, creo le tendendrias que aplicar el signo ! a esa condicion dejandola asi: if (!is_uploaded_file($_FILES['foto']['tmp_name']) && $_FILES['foto']['size']>1000 ); osea, si el archivo "no" esta subido, que se cumpla la condicion y que se suba.
  #6 (permalink)  
Antiguo 28/03/2008, 09:02
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 17 años, 3 meses
Puntos: 28
Re: subir foto con php a carpeta

man lo q veo es q en tu codigo en ningun sitio das permisos a las carpetas.... intenta asi
Código PHP:
$ediciondir'../imgprod/';  
$uploaddir=$ediciondir;
if (!
is_dir($ediciondir)) {     mkdir($uploaddir0777);    }
move_uploaded_file($_FILES['imagen']['tmp_name'], $uploaddir $_FILES['imagen']['name']);    
$filename $_FILES['imagen']['name']; 
espero t sirva.. Saludos :)
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #7 (permalink)  
Antiguo 28/03/2008, 09:58
Avatar de picazamora  
Fecha de Ingreso: febrero-2008
Ubicación: Zamora
Mensajes: 72
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: subir foto con php a carpeta

Cita:
Iniciado por cfranco Ver Mensaje
¿Usaste esta función?

copy($direccion,"http://www.forosdelweb.com/images/".$archivoconextension);

Salud y Éxitos
Franco
lo intentado asi y no hay manera

muchas gracias
  #8 (permalink)  
Antiguo 28/03/2008, 09:59
Avatar de picazamora  
Fecha de Ingreso: febrero-2008
Ubicación: Zamora
Mensajes: 72
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: subir foto con php a carpeta

Cita:
Iniciado por T4ke0veR Ver Mensaje
man lo q veo es q en tu codigo en ningun sitio das permisos a las carpetas.... intenta asi
Código PHP:
$ediciondir'../imgprod/';  
$uploaddir=$ediciondir;
if (!
is_dir($ediciondir)) {     mkdir($uploaddir0777);    }
move_uploaded_file($_FILES['imagen']['tmp_name'], $uploaddir $_FILES['imagen']['name']);    
$filename $_FILES['imagen']['name']; 
espero t sirva.. Saludos :)
hola
gracias, creo q va por aqui los tiros me e dao cuenta q este codigo me crea una carpeta, pero la imagen no me la coje, puede ser alfo del formulrio??
  #9 (permalink)  
Antiguo 28/03/2008, 09:59
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 7 meses
Puntos: 2
Re: subir foto con php a carpeta

Pero creo que el permiso no le permitiria ver la imagen, pero si subirla y el mismo condicional le dice que no se ha podido subir por que no se cumple tal condicion
  #10 (permalink)  
Antiguo 28/03/2008, 10:00
Avatar de picazamora  
Fecha de Ingreso: febrero-2008
Ubicación: Zamora
Mensajes: 72
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: subir foto con php a carpeta

Cita:
Iniciado por Francisco01 Ver Mensaje
Yo tambien opino que es ese condicional, si tu dices que no es por el tamaño, cosa que te recomiendo que estudies, es por el is_uploaded_file, esa funcion te devuelve true si el archivo esta subido, si lo quieres subir es por que no esta subido, y si no esta subido esa funcion te devolvera false, creo le tendendrias que aplicar el signo ! a esa condicion dejandola asi: if (!is_uploaded_file($_FILES['foto']['tmp_name']) && $_FILES['foto']['size']>1000 ); osea, si el archivo "no" esta subido, que se cumpla la condicion y que se suba.
gracias e probado a cambiar el codigo que me comentas y no hay manera.

muchas gracias
  #11 (permalink)  
Antiguo 28/03/2008, 16:01
Avatar de picazamora  
Fecha de Ingreso: febrero-2008
Ubicación: Zamora
Mensajes: 72
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: subir foto con php a carpeta

a alguien se le ocurre otra manera de subir la fotos a la carpeta. eske encuentro mucho pero subiendo a una base de datos y ami eso no me interesa.
un saludo y gracias
  #12 (permalink)  
Antiguo 28/03/2008, 16:12
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 7 meses
Puntos: 2
Re: subir foto con php a carpeta

mmh, yo no veo ningun fallo pero tampoco estoy seguro que no lo haya, asi que yo te aconsejo que hagas una prueba, simplemente en el archivo que se dedica a "subirlo" no pongas condicionales ni nada por el estilo, pon simplemente la funcion move_uploaded_file y esta claro que si no te funciona es un problema del servidor que bloquea algo, de momento prueba a hacerlo simplemente con la funcion poniendola:
move_uploaded_file($_FILES['imagen']['tmp_name'], "nombre.jpg"); algo asi, lo mas sencillo que puedas para probar si funciona.
  #13 (permalink)  
Antiguo 28/03/2008, 16:38
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Re: subir foto con php a carpeta

Pueden ser muchas cosas,
Has configurado el php.ini para subir archivos??
Hay unos cuantos parametros, que a lo mejor se, han de cambiar, como el tamaño maximo de subida
el tiempo de ejecucion del script, igual termina antes de poder subir la imagen.

Si ya tienes los permisos necesarios en la carpeta y el php.ini bien deberias de poder subir los archivos.

yo actualmente tengo este script, del foro, para subir archivos y va bien, pruebalo a ver que pasa.


Código PHP:
if (isset($_POST['submit'])) {  
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) {
  
     
// me verifica haya sido cargado el archivo 
        
$ruta_destino "../carpeta/archivos/";
        
$namefinaltrim ($_FILES['fichero']['name']); //quito espacios al pricipio y al final si hay
        
$namefinalereg_replace (" """$namefinal);//quito los espacios entre el nombre del archivo para no tener problemas al llamarlos
        
$uploadfile$ruta_destino $namefinal//Monto la ruta con el nobre del archivo
        
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $uploadfile)) { // se coloca en su lugar final 
                    
echo "<b>Upload exitoso!. Datos:</b><br>"
Unj saludo.

Última edición por jaronu; 28/03/2008 a las 16:45
  #14 (permalink)  
Antiguo 28/03/2008, 16:42
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años
Puntos: 890
Re: subir foto con php a carpeta

Pone como estas haciendo el formulario.
el formulario tendria que ser algo asi:
<form method="POST" action="tu.php" enctype="multipart/form-data">
<input type="file" name="archivo"/>
</form>

recuerda que el peso de la imagen esta dado en bytes 1024 b = 10 kb, en este caso estas dando una propiedad que es mayor. (no entiendo)
__________________
Drupal Argentina
  #15 (permalink)  
Antiguo 28/03/2008, 16:43
Avatar de cfranco  
Fecha de Ingreso: enero-2008
Ubicación: Barcelona - España
Mensajes: 182
Antigüedad: 16 años, 10 meses
Puntos: 6
Re: subir foto con php a carpeta

Cita:
Iniciado por picazamora Ver Mensaje
lo intentado asi y no hay manera

muchas gracias
Quizá tambien dependa de donde a donde lo quieras subir.

Si quieres subirlo desde tu servidor a una web "www.forosdelweb.com" pues no te saldrá.

Si pones tu codigo completo, es decir la secuencia o proceso que siga tu programa, ahí te podremos ayudar mejor.

Salud y Éxitos
Franco
  #16 (permalink)  
Antiguo 28/03/2008, 16:52
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 225
Antigüedad: 17 años, 11 meses
Puntos: 1
Re: subir foto con php a carpeta

analisa este codigo q hice es para mandar adjuntos por mail analizalo , el funca a la perfeccion revisalo y saca lo q necesites este sube la imagen o archhivo luego lo pasa a una carpeta y despues lo envia dejando una copia de seguridad en el server ok espero q te sirva


http://www.codigolandia.com/index-Ma...hivo-php-60.tc
  #17 (permalink)  
Antiguo 28/03/2008, 18:31
Avatar de picazamora  
Fecha de Ingreso: febrero-2008
Ubicación: Zamora
Mensajes: 72
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: subir foto con php a carpeta

hola mirar este es mi codigo al completo, haber si le encontramos una solución.

Código PHP:
<?
if (isset($submit)){
if (
is_uploaded_file($_FILES['foto']['tmp_name']) && $_FILES['foto']['size']<1000){
    if(
move_uploaded_file($_FILES['foto']['mp_name'], "imagen".$_FILES['foto']['name'])){ 
    }else{
        echo 
"<p>No se pudo mover . Upload fall&oacute;!</p>";
    }
}else{
        echo 
"<p>No se pudo subir. Upload fall&oacute;!</p>";
}  } 
    if (
is_writable('foro.txt'))
    {
        
$fecha=$HTTP_POST_VARS['fecha'];
        
$nombre=$HTTP_POST_VARS['nombre'];
        
$nombre=$HTTP_POST_VARS['nombre'];
        
$email=$HTTP_POST_VARS['email'];
        
$mensaje=$HTTP_POST_VARS['mensaje'];
        
$foto=$HTTP_POST_VARS['foto'];


        
$contenido=""$fecha ."<br>"$nombre "<br>" $email ."<br>" $mensaje "<br>" "<img src='foro/imagen/"$foto ."' width='250' height='250'></img></center>" "<hr>";
        
        if (!
$gestor=fopen('foro.txt','a'))
            {
                echo 
"no se puede abrir el archivo en el foro";
                exit;
            }
    
    if (
fwrite($gestor$contenido) === FALSE)
    {
        echo 
"no se puede escribir al archivo foro";
        exit;
    }
    
    echo 
"ya ta<br>";
    echo 
"<a href='foro.php'>volver</a>";
    
    
fclose($gestor);
    }
    else
    {
        echo 
"no se puede escribir sobre el foro.txt";
    }
?>


este es el formulario

Código PHP:
<body>
<
form method="POST" action="confirmacion.php" enctype="multipart/form-data">

  <
p>Nombre:<input type="text" name="nombre" maxlength="10" />
    <
br />
    &
nbsp;
    
Email:<input type="text" name="email" maxlength="20" />
       
Imagen:<input name="foto" type="file" />

<
br />
    
Tu mensaje:</p>
      
    <
div align="center">
    <
textarea name="mensaje" cols="60" rows="4">Escribe aqui tu mensaje </textarea>        
    <
br />
  &
nbsp;
    <
input name="submit" type="submit" value="Añadir" />
    
   
    </
p>
    </
div>
</
form
gracias a todos por vuestra ayuda
  #18 (permalink)  
Antiguo 28/03/2008, 18:53
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Re: subir foto con php a carpeta

creo que esa ruta que le pasas no esta bien, miraste este post que te puse arriba??

Cita:
Iniciado por jaronu Ver Mensaje
Pueden ser muchas cosas,
Has configurado el php.ini para subir archivos??
Hay unos cuantos parametros, que a lo mejor se, han de cambiar, como el tamaño maximo de subida
el tiempo de ejecucion del script, igual termina antes de poder subir la imagen.

Si ya tienes los permisos necesarios en la carpeta y el php.ini bien deberias de poder subir los archivos.

yo actualmente tengo este script, del foro, para subir archivos y va bien, pruebalo a ver que pasa.


Código PHP:

if (isset($_POST['submit'])) {  
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) {
  
     
// me verifica haya sido cargado el archivo 
        
$ruta_destino "../carpeta/archivos/";
        
$namefinaltrim ($_FILES['fichero']['name']); //quito espacios al pricipio y al final si hay
        
$namefinalereg_replace (" """$namefinal);//quito los espacios entre el nombre del archivo para no tener problemas al llamarlos
        
$uploadfile$ruta_destino $namefinal//Monto la ruta con el nobre del archivo
        
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $uploadfile)) { // se coloca en su lugar final 
                    
echo "<b>Upload exitoso!. Datos:</b><br>"
Unj saludo.

Última edición por jaronu; 28/03/2008 a las 19:10
  #19 (permalink)  
Antiguo 28/03/2008, 19:06
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 225
Antigüedad: 17 años, 11 meses
Puntos: 1
Re: subir foto con php a carpeta

prueba esto

echo $_FILES['fichero']['tmp_name'];

asi te daras cuenta si el fichero se carga o no
  #20 (permalink)  
Antiguo 29/03/2008, 03:36
Avatar de picazamora  
Fecha de Ingreso: febrero-2008
Ubicación: Zamora
Mensajes: 72
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: subir foto con php a carpeta

probe a configurar el .ini y nada, hice la prueba en el servidor externo y tampoco el mismo fallo.

luego e probado de saber donde se carga la imagen y la llega a cargar en archivos temporales , asi que el problema esta en la segunda linea.
Código PHP:
if(move_uploaded_file($_FILES['foto']['tmp_name'],"/imagen".$_FILES['foto']['name'])){ 

un saludo haber si acabamos jeje
  #21 (permalink)  
Antiguo 01/04/2008, 19:22
Avatar de picazamora  
Fecha de Ingreso: febrero-2008
Ubicación: Zamora
Mensajes: 72
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: subir foto con php a carpeta

hola ya resolvi el problema cree un nuevo codigo y listo funciona perfecto muchas gracias por vuestra ayuda. lo dejo aki por si alguien le interesa.

Código PHP:
<!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>confirmacion</title>
</head>

<body>
<?
$path
="imagen/";

$nombre_archivo $_FILES['foto']['name'];
$tipo_archivo $_FILES['foto']['type'];
$tamano_archivo $_FILES['foto']['size'];

if (!((
strpos($tipo_archivo"gif") || strpos($tipo_archivo"bmp") || strpos($tipo_archivo,"jpeg")) && ($tamano_archivo 8192000))) {
echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos *.gif, *.bmp o *.jpg<br><li>se permiten archivos de 1mb máximo.</td></tr></table><br>";
echo 
"<a href='formulario.php'>Click aquí</a> para corregir los campos.";
}else{
if (
move_uploaded_file($HTTP_POST_FILES['foto']['tmp_name'], $path.$_FILES['foto']['name'])){
echo 
"El archivo ha sido cargado correctamente.";
}else{
echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
    if (
is_writable('foro.txt'))
    {
        
$fecha=$HTTP_POST_VARS['fecha'];
        
$nombre=$HTTP_POST_VARS['nombre'];
        
$email=$HTTP_POST_VARS['email'];
        
$mensaje=$HTTP_POST_VARS['mensaje'];


        
$contenido=""$fecha ."<br>"$nombre "<br>" $email ."<br>" $mensaje "<br>" "<img src='foro/imagen/"$_FILES['foto']['name'] ."' width='250' height='250'></img></center>" "<hr>";
        
        if (!
$gestor=fopen('foro.txt','a'))
            {
                echo 
"no se puede abrir el archivo en el foro";
                exit;
            }
    
    if (
fwrite($gestor$contenido) === FALSE)
    {
        echo 
"no se puede escribir al archivo foro";
        exit;
    }
    
    echo 
$_FILES['foto']['name']; 
    echo 
"<br>ya ta<br>";
    echo 
"<a href='../inicio.php'>volver</a>";
    
    
fclose($gestor);
    }
    else
    {
        echo 
"no se puede escribir sobre el foro.txt";
    }
?>    
</body>
</html>
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 21:56.