Foros del Web » Programando para Internet » PHP »

Problema con Formulario de carga de imagenes

Estas en el tema de Problema con Formulario de carga de imagenes en el foro de PHP en Foros del Web. Buenas tardes tengo el siguiente formulario y archivo de carga, los cuales me dan un error no se si es por el servidor local desde ...
  #1 (permalink)  
Antiguo 29/08/2014, 14:56
 
Fecha de Ingreso: febrero-2011
Mensajes: 20
Antigüedad: 13 años, 2 meses
Puntos: 1
Exclamación Problema con Formulario de carga de imagenes

Buenas tardes tengo el siguiente formulario y archivo de carga, los cuales me dan un error no se si es por el servidor local desde xampp en mi computadora o es un problema como tal del codigo gracias de antemano :

Código PHP:

 Nombre
IMG-20140810-08661.jpg
Tipo
image/jpeg
Tamaño
272.5048828125 Kb
Guardado en
C:xampptmpphp14FF.tmp
Warning
move_uploaded_file(tdb/IMG-20140810-08661.jpg): failed to open streamNo such file or directory in C:xampphtdocselielectronixsubirimagen.php on line 50

Warning
move_uploaded_file(): Unable to move 'C:\xampp\tmp\php14FF.tmp' to 'tdb/IMG-20140810-08661.jpg' in C:xampphtdocselielectronixsubirimagen.php on line 50 

Formulario:

Código HTML:
<form action="subirimagen.php" method="post" enctype="multipart/form-data">

					<div class="form_row">
                    <label for="archivo">Archivo:</label>
 					<input type="file" name="archivo" id="archivo" />
  					</div>
          
                    <div class="form_row">
                    <label class="contact"><strong>Nombre:</strong></label>
                    <input type="text" class="contact_input" name="nombre" id="nombre" />
                    </div>  

                    <div class="form_row">
                    <label class="contact"><strong>Categoria:</strong></label>
                    <input type="text" class="contact_input" name="categoria" id="categoria"/>
                    </div>


                    <div class="form_row">
                    <label class="contact"><strong>Envio:</strong></label>
                    <select name="envio" id="envio">
                    <option>Envio Gratis</option>
                    <option>Retiro Personal</option>
                    </select>
                  
                    </div>
                    
                    <div class="form_row">
                    <label class="contact"><strong>Precio:</strong></label>
                    <input type="text" class="contact_input" name="precio" id="precio"/>
                    </div>
                    
                    <div class="form_row">
                   	<input type="submit" value="Cargar" />
                    </div>      
                    
</form> 
archivo sube la imagen al servidor :

Código PHP:
<body>
<center>
<img src="images/cargarproducto.png" />
<br />
<img src="images/loading.gif" />
<?php

if( !isset($_FILES['archivo']) ){
  echo 
'<br/> Ha habido un error, tienes que elegir un archivo<br/>';
  echo 
'<a href="formulariodecarga.php">Subir archivo</a>';
}else{

  
$nombre $_FILES['archivo']['name'];
  
$nombre_tmp $_FILES['archivo']['tmp_name'];
  
$tipo $_FILES['archivo']['type'];
  
$tamano $_FILES['archivo']['size'];

  
$ext_permitidas = array('jpg','jpeg','gif','png');
  
$partes_nombre explode('.'$nombre);
  
$extension end$partes_nombre );
  
$ext_correcta in_array($extension$ext_permitidas);

  
$tipo_correcto preg_match('/^image\/(pjpeg|jpeg|gif|png)$/'$tipo);

  
$limite 500 1024;

  if( 
$ext_correcta && $tipo_correcto && $tamano <= $limite ){
    if( 
$_FILES['archivo']['error'] > ){
      echo 
'Error: ' $_FILES['archivo']['error'] . '<br/>';
    }else{
      echo 
'Nombre: ' $nombre '<br/>';
      echo 
'Tipo: ' $tipo '<br/>';
      echo 
'Tamaño: ' . ($tamano 1024) . ' Kb<br/>';
      echo 
'Guardado en: ' $nombre_tmp;

      if( 
file_exists'tdb/'.$nombre) ){
        echo 
'<br/>El archivo ya existe: ' $nombre;
      }else{
        
move_uploaded_file($nombre_tmp,"tdb/"$nombre);
 
"<br/>Guardado en: " "tdb/" $nombre;
      }
    }
  }else{
    echo 
'Archivo inválido';
  }
}
?>
</center>
</body>
Necesito la ayuda de ustedes si alguien sabe cual pudiese ser el problema gracias.
  #2 (permalink)  
Antiguo 29/08/2014, 15:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con Formulario de carga de imagenes

El error te indica que la carpeta de destino dónde intentas mover el archivo no existe.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 29/08/2014, 16:16
Avatar de waltasho  
Fecha de Ingreso: agosto-2014
Mensajes: 1
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Problema con Formulario de carga de imagenes

PRUEBA ESTO QUIZAS TE AYUDE

////////////// Parte añadida 1 //////////////
//array de archivos disponibles
$archivos_disp_ar = array('jpg', 'jpeg', 'gif', 'png');
//carpteta donde vamos a guardar la imagen
$carpeta = '../../tu_carpeta_de_imagen/';
//recibimos el campo de imagen
$imagen = $_FILES['foto']['tmp_name'];
//guardamos el nombre original de la imagen en una variable
$nombrebre_orig = $_FILES['foto']['name'];
//el proximo codigo es para ver que extension es la imagen
$array_nombre = explode('.',$nombrebre_orig);
$cuenta_arr_nombre = count($array_nombre);
$extension = strtolower($array_nombre[--$cuenta_arr_nombre]);

//validamos la extension
if(!in_array($extension, $archivos_disp_ar)) $error = "Este tipo de archivo no es permitido <meta http-equiv='Refresh' content='5;url=regreso.php'> ";

if(empty($error)){

//creamos nuevo nombre para que tenga nombre unico
$nombre_nuevo = time().'_'.rand(0,100).'.'.$extension;
//nombre nuevo con la carpeta
$nombre_nuevo_con_carpeta = $carpeta.$nombre_nuevo;
//por fin movemos el archivo a la carpeta de imagenes
$mover_archivos = move_uploaded_file($imagen , $nombre_nuevo_con_carpeta);
//de damos permisos 777
chmod($nombre_nuevo_con_carpeta,0777);

}
///////////////////////////////////////////

Etiquetas: formulario, imagenes, select
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 13:50.