Fran.MV
Usuario habitual
Usuario habitual

Miren, estoy intentanto hacer un formulario, que, que suba una imagen.

<?
if(!$titulo && !$imagen && !$categoria)
{
    echo "Los campos no estan completos";
    exit;
}

$titulo = trim($titulo);
$ntexto = split(" ",strtolower($titulo));
$length = count($ntexto);

for($i = 0; $i < $length; $i++)
{
    $ptexto = $ptexto.$ntexto[$i]."_";
}

$dname = substr($ptexto,0,strlen($ptexto)-1);
$newd = "./imagenes_portada/".$dname;
mkdir($newd, 0777);
$directorio = "/imagenes_portada/".$dname."/";

move_uploaded_file($_FILES['imagen']['tmp_name'], $directorio . $_FILES['imagen']['name']);

Lo que hace el codigo es, tomar el campo titulo y crear un directorio con ese nombre. La idea, es luego enviar la imagen al directorio recien creado.

El formulario esta ligado a una base da datos tambien, la informacion se guarda, pero, la imagen no se guarda. Lo he intentado de varias formas, pero la imagen sigue sin aparecer en el directorio que creo.

Alguna orientacion por favor T-T

Avatar Image
@man / @woman
@man / @woman

El directorio ¿se llega a crear?

Fran.MV
Usuario habitual
Usuario habitual

Si, aparece donde debe y con el nombre correcto. Pero la imagen nunca llega ahí. =(

Avatar Image
@man / @woman
@man / @woman

Pues seguimos a la siguiente línea...


$directorio = "/imagenes_portada/".$dname."/";
  
 move_uploaded_file($_FILES['imagen']['tmp_name'], $directorio . $_FILES['imagen']['name']);

$directorio ¿esta bien formateado? ¿con la ruta que es?

$directorio.$FILES['imagen']['name'] ¿idem?

¿Seguro que no sera ./imagenes_portada/...

Fran.MV
Usuario habitual
Usuario habitual

Prove con lo que me dijiste y sigue igual. Mira.

https://duoc.webcindario.com/contenido/1.gif

Ahi esta la parte, donde estan los archivos que uso y la carpeta "imagenes_portada".

Aqui ejecuto el archivo forma.html.

https://duoc.webcindario.com/contenido/2.gif

Y aqui se ve que la el directorio se crea, pero sigue vacia.

https://duoc.webcindario.com/contenido/3.gif

De antemano, muchas muchas gracias por la ayuda.

Avatar Image
@man / @woman
@man / @woman

Imprime esas 3 variables por separado, para ver si tienen los valores que esperas.

Fran.MV
Usuario habitual
Usuario habitual

Es cierto, de las 3, solo se imprime $directorio.

https://duoc.webcindario.com/contenido/forma.html

Del HTML FORMA:

<td width="130">Imagen</td>
<td width="460"><input type="file" name="imagen"></td>

Del php:

move_uploaded_file($_FILES['imagen']['tmp_name'], $directorio . $_FILES['imagen']['name']);

echo $directorio."<br>";
echo $_FILES['imagen']['tmp_name']."<br>";
echo $_FILES['imagen']['name']."<br>";

¿Que puede ser?... Otra ves, muchas gracias Sr NoSetup.org

Avatar Image
@man / @woman
@man / @woman

Tiene pinta que no llega a subir el archivo...

Prueba...

if (!is_uploaded_file ($_FILES['imagen']['tmp_name'])) 
 echo 'Houston!!! esto no sube!!);
else
 echo 'Pues algo hace!';     

También revisa como es el formulario html, la cabecera del <form pues estas indicando que se va a subir un archivo.

Fran.MV
Usuario habitual
Usuario habitual

Imprime:

Houston!!! esto no sube!! (jaja)

Es raro, por que al principio tiene:

if(!$titulo && !$imagen && !$categoria)
{
    echo "Los campos no estan completos";
    exit;
}

Y no imprime el mensaje.

Fran.MV
Usuario habitual
Usuario habitual

Modifiqué el codigo, (Lo he intentado de 1000 maneras distintas)

Con un insertacontenido.php así:

<?
if(!$titulo && !$userfile && !$categoria)
{
    echo "Los campos no estan completos";
    exit;
}

$titulo = trim($titulo);

if(!$titulo)
{
    echo "No ha ingresado nada";
    exit;
}

$ntexto = split(" ",strtolower($titulo));
$length = count($ntexto);


for($i = 0; $i < $length; $i++)
{
    $ptexto = $ptexto.$ntexto[$i]."_";
}

$dname = substr($ptexto,0,strlen($ptexto)-1);
$newd = "./imagenes_portada/".$dname;
$target = "/imagenes_portada/".$dname."/"$_FILES['userfile']['tmp_name'].
mkdir($newd, 0777);

if ($_FILES['userfile']['type']=="image/jpeg" || ($_FILES['userfile']['type']=="image/pjpeg") )
{
 
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   echo "El archivo ". $_FILES['userfile']['name'] ." ha sido subido con exito\n"."<br>";
  
$nombre_fichero=time().'__'.$_FILES['userfile']['name']; 
$nombre_fichero='imagenes_portada/'.$_FILES['userfile']['name']; 
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $nombre_fichero))
    {
    
      echo "Imagen correcta";  
    }   
    else
    { echo "No se ha podido subir la imagen";
      print_r($_FILES);
    } 
   }      
echo "Mostrando la imagen<br>"; 
echo '<img src="'. $nombre_fichero .'">';

} 
else
 {  
 echo "El tipo de fichero no es valido";
 }

if($categoria == "Anime")
{
    $categoria = 1;
    settype($categoria, "integer");
}
else
{
    $categoria = 2;
    settype($categoria, "integer");
}

$titulo = addslashes($titulo);
$imagen = addslashes($imagen);

$db = mysql_pconnect("mysql.webcindario.com","duoc","14590"); 
mysql_select_db("duoc",$db);

$consulta = "INSERT INTO CONTENIDO (ID_CATEGORIA, TITULO, IMAGEN_PORTADA) VALUES (".$categoria.",'".$titulo."','".$target."')";

$resultado = mysql_query($consulta);

if($resultado)
{
    echo "Se ha agregado una Categoria";
}
else
{
    echo "error";
}
?>

Con un forma.html asi:

<html>
<body>
<div align="center">
  <center>
  <form method="POST" action="insertacontenido.php">
  <table border="0" width="600" cellpadding="0">
    <tr>
      <td width="130">Nombre</td>
      <td width="460"><input type="text" name="titulo" size="20"></td>
      <tr>
          <td width="130">Imagen</td>
        <td width="460"><input name="userfile" type="file"></td>
      </tr>
      <tr>
          <td width="130">Categoría</td>
        <td width="460"><select size="1" name="categoria">
        <option>Anime</option>
        <option>Juegos</option>
          </select>
        </td>
      <tr>
      <td>
      <input type="submit" value="Enviar" name="B1">
      </td>
      </tr>
    </tr>
    <tr>
  </table>
  </form>
  </center>
</div>
</body>
</html>

Y por cierto, lo que cambie fue esto:

if ($_FILES['userfile']['type']=="image/jpeg" || ($_FILES['userfile']['type']=="image/pjpeg") )
{
 
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   echo "El archivo ". $_FILES['userfile']['name'] ." ha sido subido con exito\n"."<br>";
 
$nombre_fichero=time().'__'.$_FILES['userfile']['name'];
$nombre_fichero='imagenes_portada/'.$_FILES['userfile']['name'];
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $nombre_fichero))
    {
    
      echo "Imagen correcta";  
    }   
    else
    { echo "No se ha podido subir la imagen";
      print_r($_FILES);
    }
   }      
echo "Mostrando la imagen<br>";
echo '<img src="'. $nombre_fichero .'">';

}
else
 {  
 echo "El tipo de fichero no es valido";
 }

Pero ahora dice que el archivo no es valido. Ya no sé que hacer =(

Pero de verdad te agrazco toda la ayuda Sr NoSetup.org, gracías. :)

Avatar Image
@man / @woman
@man / @woman

A ver... estas pillando códigos y poniendoles a ver si suena la flauta...

Del primer código, lo más seguro que te fallara estaba en el formulario, en la línea del <form

¿como era?

Fran.MV
Usuario habitual
Usuario habitual

Jaja no, primero solo puse el move_uploaded_file con la idea de que solo subiera el archivo. Despues, pensando que era un problema de validacion, le agregué lo demás. Pero ni así funciona.

El form era:

<html>
<body>
<div align="center">
  <center>
  <form method="POST" action="insertacontenido.php">
  <table border="0" width="600" cellpadding="0">
    <tr>
      <td width="130">Nombre</td>
      <td width="460"><input type="text" name="titulo" size="20"></td>
      <tr>
          <td width="130">Imagen</td>
        <td width="460"><input name="userfile" type="file"></td>
      </tr>
      <tr>
          <td width="130">Categoría</td>
        <td width="460"><select size="1" name="categoria">
        <option>Anime</option>
        <option>Juegos</option>
          </select>
        </td>
      <tr>
      <td>
      <input type="submit" value="Enviar" name="B1">
      </td>
      </tr>
    </tr>
    <tr>
  </table>
  </form>
  </center>
</div>
</body>
</html>

Gracias otra ves.

Avatar Image
Come y duerme en el foro
Come y duerme en el foro

Ves fragmentando el script en otros mas pequeños.

Haz el formulario del upload y la simple tarea de que te suba la imagen .jpg. Si eso te funciona ves añadiendole "particularidades".

Fran.MV
Usuario habitual
Usuario habitual

Ok, haré la prueba. Gracías :)

Avatar Image
@man / @woman
@man / @woman

<form method="POST" action="insertacontenido.php">

En esta línea esta el error... faltan cosas!!

Fran.MV
Usuario habitual
Usuario habitual

Sr NoSetup, muchas gracías. Tenia razón, olvidé colorcar la etiqueta: enctype="multipart/form-data".

Muchas gracías, ahora si funciona.

Gracias otra ves :D

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares