Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] upload imagen campo vacio al DB

Estas en el tema de upload imagen campo vacio al DB en el foro de PHP en Foros del Web. Hola A todos Tome el codigo para subir imagen al servidor y funciona muy bien, Los campos que se van al DB solo va el ...
  #1 (permalink)  
Antiguo 15/10/2015, 15:45
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 555
Antigüedad: 15 años
Puntos: 4
Pregunta upload imagen campo vacio al DB

Hola A todos

Tome el codigo para subir imagen al servidor y funciona muy bien,

Los campos que se van al DB solo va el ID y la Fecha, menos el nombre del file subido,
alguna sugerencia del por que envia como campo vacio?


Código PHP:

<?php

$conn 
= &ADONewConnection('mysql');     
$conn->Connect($dbhost,$dbuser,$dbpass,$dbdatabase);
if (isset(
$_POST['action']) && $_POST['action'] == 'add'
{

    
$fileToUpload $_POST['fileToUpload'];
    
$addsql "INSERT INTO ".$tabla."documentos (id, fileToUpload, fecha) VALUES ('$id','$fileToUpload',NOW())";
    if (
$conn->Execute($addsql))
        echo 
"<div align=center><font color=#090>  Ingresado </font></div>";
    else
        echo 
"<div align=center><font color=#ff0000>   No fue,  Ingresado </font></div>";
}




$target_dir "uploads/";
$target_file $target_dir basename($_FILES["fileToUpload"]["name"]);
$uploadOk 1;
$imageFileType pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    
$check getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if(
$check !== false) {
        echo 
"File is an image - " $check["mime"] . ".";
        
$uploadOk 1;
    } else {
        echo 
"File is not an image.";
        
$uploadOk 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
    echo 
"Sorry, file already exists.";
    
$uploadOk 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo 
"Sorry, your file is too large.";
    
$uploadOk 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo 
"Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    
$uploadOk 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo 
"Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo 
"The file "basename$_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo 
"Sorry, there was an error uploading your file.";
    }
}
?>


<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>
  #2 (permalink)  
Antiguo 15/10/2015, 16:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 7 meses
Puntos: 2534
Respuesta: upload imagen campo vacio al DB

Un archivo jamás vendrá en el $_POST, increíblemente tu código más abajo lo usa bien, y extrae el nombre de $_FILES.

¡Pero haces el INSERT mucho antes de si quiera subir el archivo!

Piensa un poco lo que haces.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 15/10/2015, 16:46
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 555
Antigüedad: 15 años
Puntos: 4
Respuesta: upload imagen campo vacio al DB

Cita:
Iniciado por pateketrueke Ver Mensaje
Un archivo jamás vendrá en el $_POST, increíblemente tu código más abajo lo usa bien, y extrae el nombre de $_FILES.

¡Pero haces el INSERT mucho antes de si quiera subir el archivo!

Piensa un poco lo que haces.
Hola pateketruek.

entonces que sugieres cree un form aparte donde envie el post? mas no en el mismo from?
  #4 (permalink)  
Antiguo 15/10/2015, 16:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 7 meses
Puntos: 2534
Respuesta: upload imagen campo vacio al DB

No me entendiste.

Tu intentas leer el nombre del $_POST pero ese es tu error, ya que el nombre del archivo viene en $_FILES.

En tu código más abajo lees bien el nombre, ¿por qué no haces el INSERT ahí? ¿por qué realizas el INSERT mucho antes de la siguiente rutina?

Carece de orden tu lógica.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 15/10/2015, 17:07
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 4 años, 5 meses
Puntos: 263
Mensaje Respuesta: upload imagen campo vacio al DB

serial algo mas o menos asi:

Código PHP:
Ver original
  1. $directorio = $_SERVER['DOCUMENT_ROOT']."/img/logos/";
  2.  
  3.     $dato1 = $_post['dato'];
  4.     $dato2 = $_post['dato2'];
  5.     $nombre = $_FILES['logo']['name'];
  6.     $tipo = $_FILES['logo']['type'];
  7.    
  8.    
  9.     list($a, $b) = explode("/", $tipo);
  10.    
  11.    
  12.     $nuevonombre = "nuevonombre".$b;
  13.    
  14.    
  15.     move_uploaded_file($_FILES['logo']['tmp_name'],$directorio.$nuevonombre);
  16.    
  17.     //actualizamos el nombre del logo
  18.     $inserta = $db->query("INSERT INTO tabla (logo,dato1,dato2) VALUE ('$nuevonombre' , '$dato1' , '$dato2')");
  19.    
  20.     if($inserta){
  21.         echo "
  22.                <script language='JavaScript'>
  23.                alert('Logo Cargado Correctamente, Recuerde actualizar la pagina para visualizar el cambio');
  24.                </script>";
  25.  
  26.     } else {
  27.         echo "Fallo";
  28.  
  29.     }
__________________
[email protected]
HITCEL
  #6 (permalink)  
Antiguo 15/10/2015, 17:55
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 555
Antigüedad: 15 años
Puntos: 4
Respuesta: upload imagen campo vacio al DB

Cita:
Iniciado por xfxstudios Ver Mensaje
serial algo mas o menos asi:

Código PHP:
Ver original
  1. $directorio = $_SERVER['DOCUMENT_ROOT']."/img/logos/";
  2.  
  3.     $dato1 = $_post['dato'];
  4.     $dato2 = $_post['dato2'];
  5.     $nombre = $_FILES['logo']['name'];
  6.     $tipo = $_FILES['logo']['type'];
  7.    
  8.    
  9.     list($a, $b) = explode("/", $tipo);
  10.    
  11.    
  12.     $nuevonombre = "nuevonombre".$b;
  13.    
  14.    
  15.     move_uploaded_file($_FILES['logo']['tmp_name'],$directorio.$nuevonombre);
  16.    
  17.     //actualizamos el nombre del logo
  18.     $inserta = $db->query("INSERT INTO tabla (logo,dato1,dato2) VALUE ('$nuevonombre' , '$dato1' , '$dato2')");
  19.    
  20.     if($inserta){
  21.         echo "
  22.                <script language='JavaScript'>
  23.                alert('Logo Cargado Correctamente, Recuerde actualizar la pagina para visualizar el cambio');
  24.                </script>";
  25.  
  26.     } else {
  27.         echo "Fallo";
  28.  
  29.     }
hola xfxstudios

sale muchos errores de conexion no esta muy claro tu codigo, podrias porfavor explicar nuevocodigo? se supone que debe guardar con el mismo nombre
  #7 (permalink)  
Antiguo 15/10/2015, 18:03
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 4 años, 5 meses
Puntos: 263
Respuesta: upload imagen campo vacio al DB

Primero: no tengo idea de que errores te saltan porque no los colocas y en tal caso debes adaptar este script a tu codigo y a tu metodo de conexion.

Segundo: El codigo lo utiliuzo sin problemas, alli te lo coloco nuevamente comentado y dejando el nombre que trae por defecto la imagen:

Código PHP:
Ver original
  1. //directorio donde se guarda la iomagen
  2. $directorio = $_SERVER['DOCUMENT_ROOT']."/img/logos/";
  3.  
  4.     $dato1 = $_post['dato'];
  5.     $dato2 = $_post['dato2'];
  6.    
  7.     //aqui viene el nombre original
  8.     $nombre = $_FILES['logo']['name'];
  9.    
  10.     ///aqui el tipo de imagen
  11.     $tipo = $_FILES['logo']['type'];
  12.    
  13.     //aqui dividimos el tipo de imagen y separamos la extension
  14.     list($a, $b) = explode("/", $tipo);
  15.    
  16.    
  17.     //aqui dejamos el nombre que trae por defecto la imagen con su extension para ser guardada
  18.     //eliminamos los espacios que pudiera tener la imagen en el nombre
  19.     $nuevonombre = str_replace(" ", "_", $nombre).".".$b;
  20.    
  21.     //muevo la imagen al directorio y le doy el nombre
  22.     move_uploaded_file($_FILES['logo']['tmp_name'],$directorio.$nuevonombre);
  23.    
  24.     //insertamos el nombre en la base de datos con el resto de la informacion    
  25.     $inserta = $db->query("INSERT INTO tabla (logo,dato1,dato2) VALUE ('$nuevonombre' , '$dato1' , '$dato2')");
  26.    
  27.     //si se guarda correctamente emitimos el aviso
  28.     if($inserta){
  29.         echo "
  30.                <script language='JavaScript'>
  31.                alert('Logo Cargado Correctamente, Recuerde actualizar la pagina para visualizar el cambio');
  32.                </script>";
  33.  
  34.     } else {
  35.         echo "Fallo";
  36.  
  37.     }
__________________
[email protected]
HITCEL
  #8 (permalink)  
Antiguo 15/10/2015, 18:12
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 555
Antigüedad: 15 años
Puntos: 4
Respuesta: upload imagen campo vacio al DB

hola xfxstudios

adapte toda la conexion y si envia al DB pero intento subir otro file y lo reemplaza es decir lo sobre escribe
creo que deberia subir con el mismo nombre de la imagen o archivo por que todo sube con el mismo nombre "nuevonombre"

Código PHP:

<?php
$conn 
= &ADONewConnection('mysql');     
$conn->Connect($dbhost,$dbuser,$dbpass,$dbdatabase);
if (isset(
$_POST['action']) && $_POST['action'] == 'add'
{
    
$directorio $_SERVER['DOCUMENT_ROOT']."/uploads/";
    
$nombre $_FILES['fileToUpload']['name'];
    
$tipo $_FILES['fileToUpload']['type'];
    list(
$a$b) = explode("/"$tipo);
    
$nuevonombre "nuevonombre.".$b;
    
move_uploaded_file($_FILES['fileToUpload']['tmp_name'],$directorio.$nuevonombre);
    
    
$fileToUpload $_POST['fileToUpload'];
    
$addsql "INSERT INTO ".$tabla."documentos (id, fileToUpload, fecha) VALUES ('$id','$nuevonombre',NOW())";
    if (
$conn->Execute($addsql))
        echo 
"<div align=center><font color=#090>  Ingresado </font></div>";
    else
        echo 
"<div align=center><font color=#ff0000>   No fue,  Ingresado </font></div>";
}
?>

Última edición por pilucho; 15/10/2015 a las 18:13 Razón: [/PHP]
  #9 (permalink)  
Antiguo 15/10/2015, 18:21
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 4 años, 5 meses
Puntos: 263
Respuesta: upload imagen campo vacio al DB

broher (nuevonombre) es una variable de muestra, alli colocas la variable que auiqreas que quede como nombre, en el ultimo codigo que te coloque te deja el nombre original eliminando espacios en blanco
__________________
[email protected]
HITCEL
  #10 (permalink)  
Antiguo 15/10/2015, 18:40
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 555
Antigüedad: 15 años
Puntos: 4
Respuesta: upload imagen campo vacio al DB

Cita:
Iniciado por xfxstudios Ver Mensaje
broher (nuevonombre) es una variable de muestra, alli colocas la variable que auiqreas que quede como nombre, en el ultimo codigo que te coloque te deja el nombre original eliminando espacios en blanco
gracias xfxstudio, casi las variables son el mismo solo cambio

$nuevonombre = str_replace(" ", "_", $nombre).".".$b;
aun sigue enviado el mismo nombre y sobre escribe

Código PHP:
.

    
//aqui viene el nombre original
    
$nombre $_FILES['logo']['name'];
    
///aqui el tipo de imagen
    
$tipo $_FILES['logo']['type'];
    
//aqui dividimos el tipo de imagen y separamos la extension
    
list($a$b) = explode("/"$tipo);
    
//aqui dejamos el nombre que trae por defecto la imagen con su extension para ser guardada
    //eliminamos los espacios que pudiera tener la imagen en el nombre
    
$nuevonombre str_replace(" ""_"$nombre).".".$b;
    
//muevo la imagen al directorio y le doy el nombre 
  #11 (permalink)  
Antiguo 15/10/2015, 18:42
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 4 años, 5 meses
Puntos: 263
Respuesta: upload imagen campo vacio al DB

como te dije si estas enviando una imagen con el mismo nombre la va a sobreescribir, podrias diferenciarlas colocando la fechay hora al nombre algo asi:

Código PHP:
Ver original
  1. $nuevonombre = str_replace(" ", "_", $nombre).date("YmdHis").".".$b;
__________________
[email protected]
HITCEL
  #12 (permalink)  
Antiguo 16/10/2015, 10:03
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 555
Antigüedad: 15 años
Puntos: 4
Respuesta: upload imagen campo vacio al DB

Gracias xfxstudios

Cambie un poco el codigo y funciona ahora muy bien, muchas gracias por su ayuda.




Código PHP:

<?php
$conn 
= &ADONewConnection('mysql');     
$conn->Connect($dbhost,$dbuser,$dbpass,$dbdatabase);
if (isset(
$_POST['action']) && $_POST['action'] == 'add'
{
    
$directorio $_SERVER['DOCUMENT_ROOT']."/uploads/";
    
$nombre $_FILES['fileToUpload']['name'];
    
$tipo $_FILES['fileToUpload']['type'];
    list(
$a$b) = explode("/"$tipo);
//    $nuevonombre = "nuevonombre.".$b; // Envia todo con un solo nombre ej. (nuevonombre.jpeg)
//    $nuevonombre = str_replace(" ", "_", $nombre).".".$b; // Envia con el nombre y al final la extencion ej. (foto.jpg.jpeg)
//    $nuevonombre = str_replace(" ", "_", $nombre).""; // Envia con el mismo nombre y envia todo los formatos PDF DOCX Etc.
//    $nuevonombre = str_replace(" ", "_", $nombre).date("YmdHis").".".$b; // Ej. (foto.jpg20151016075016.jpeg) mas fecha y hora, segundos
    
$nuevonombre str_replace(" ""_"$nombre)."";  // Envia todo los formmatos y mantiene su extencion final
    
move_uploaded_file($_FILES['fileToUpload']['tmp_name'],$directorio.$nuevonombre);
    
    
$fileToUpload $_POST['fileToUpload'];
    
$addsql "INSERT INTO ".$tabla."documentos (id, fileToUpload, fecha) VALUES ('$id','$nuevonombre',NOW())";
    if (
$conn->Execute($addsql))
        echo 
"<div align=center><font color=#090>  Ingresado </font></div>";
    else
        echo 
"<div align=center><font color=#ff0000>   No fue,  Ingresado </font></div>";
}
?>

Última edición por pilucho; 16/10/2015 a las 10:04 Razón: [/PHP]
  #13 (permalink)  
Antiguo 16/10/2015, 22:25
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 555
Antigüedad: 15 años
Puntos: 4
Respuesta: upload imagen campo vacio al DB

Cita:
Iniciado por xfxstudios Ver Mensaje
como te dije si estas enviando una imagen con el mismo nombre la va a sobreescribir, podrias diferenciarlas colocando la fechay hora al nombre algo asi:

Código PHP:
Ver original
  1. $nuevonombre = str_replace(" ", "_", $nombre).date("YmdHis").".".$b;


tengo pequeño problemita de validacion

Valide si el campo esta vacio, pero cuando adjunto la imagen no deja pasar la validacion y sale el mensaje que puse cuando el campo esta vacio


Código PHP:
<?php
$conn 
= &ADONewConnection('mysql');     
$conn->Connect($dbhost,$dbuser,$dbpass,$dbdatabase);
if (isset(
$_POST['action']) && $_POST['action'] == 'add'
{
    
// validacion
    
function validar($form_vars$action) {
    
$vararray explode(',',$form_vars);
    foreach (
$vararray as $var)     {
    
$var trim($var); 
    if (!
$action[$var]) return false; }
    return 
true; }
    
// fin validacion
    
if (!validar('nuevonombre'$_POST))    {
    echo 
"  campo vacio <a href='javascript:history.go(-1);'>Volver</a> <br>";
    exit;
    }
    
$directorio $_SERVER['DOCUMENT_ROOT']."/uploads/";
    
$nombre $_FILES['fileToUpload']['name'];
    
$tipo $_FILES['fileToUpload']['type'];
    list(
$a$b) = explode("/"$tipo);
    
$nuevonombre str_replace(" ""_"$nombre)."";  // Envia todo los formmatos y mantiene su extencion final
    
move_uploaded_file($_FILES['fileToUpload']['tmp_name'],$directorio.$nuevonombre);
    
    
$fileToUpload $_POST['fileToUpload'];
    
$addsql "INSERT INTO ".$tabla."documentos (id, fileToUpload, fecha) VALUES ('$id','$nuevonombre',NOW())";
    if (
$conn->Execute($addsql))
        echo 
"  Ingresado  ";
    else
        echo 
"  No fue,  Ingresado  ";
}
?>
  #14 (permalink)  
Antiguo 17/10/2015, 03:53
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 16 años
Puntos: 154
Respuesta: upload imagen campo vacio al DB

Hola pilucho.

Ya te lo dijo pateketrueke en su respuesta:

Cita:
Iniciado por pateketrueke Ver Mensaje
No me entendiste.

Tu intentas leer el nombre del $_POST pero ese es tu error, ya que el nombre del archivo viene en $_FILES.
Ahí estás validando lo que viene por $_POST y el archivo lo recibes por $_FILES.
  #15 (permalink)  
Antiguo 17/10/2015, 17:03
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 4 años, 5 meses
Puntos: 263
Respuesta: upload imagen campo vacio al DB

es correcto el nombre de la imagen biene directamente por aqui $_FILES['fileToUpload']['name'];

asi que no veo porque validad el post ya que no creo que estes pasando nada por alli, lo que debes validad es si el nombre que le estas asignando a tu imagen ya esta en la base de datos, cosa que no creo ya que utilizas la fecha y hora para asignarlo y no va a haber 2 imagenes con el mismo nombre registradas
__________________
[email protected]
HITCEL
  #16 (permalink)  
Antiguo 19/10/2015, 09:44
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 555
Antigüedad: 15 años
Puntos: 4
Respuesta: upload imagen campo vacio al DB

Cita:
Iniciado por pateketrueke Ver Mensaje
No me entendiste.

Tu intentas leer el nombre del $_POST pero ese es tu error, ya que el nombre del archivo viene en $_FILES.

En tu código más abajo lees bien el nombre, ¿por qué no haces el INSERT ahí? ¿por qué realizas el INSERT mucho antes de la siguiente rutina?

Carece de orden tu lógica.
hola pateketrueke

lo hice asi y nada no envia al db


Código PHP:
<?php


$target_dir 
"uploads/";
$target_file $target_dir basename($_FILES["fileToUpload"]["name"]);
$uploadOk 1;
$imageFileType pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    
$check getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if(
$check !== false) {
        
    
$conn = &ADONewConnection('mysql');     
    
$conn->Connect($dbhost,$dbuser,$dbpass,$dbdatabase);
    if (isset(
$_POST['action']) && $_POST['action'] == 'add'
    {
    
$fileToUpload $_POST['fileToUpload'];
    
$addsql "INSERT INTO ".$tabla."documentos (id, fileToUpload, fecha) VALUES ('$id','$nuevonombre',NOW())";
    if (
$conn->Execute($addsql))
    echo 
"  Ingresado  ";
    else
        echo 
"  No fue,  Ingresado  ";
}



        echo 
"File is an image - " $check["mime"] . ".";
        
$uploadOk 1;
    } else {
        echo 
"File is not an image.";
        
$uploadOk 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
    echo 
"Sorry, file already exists.";
    
$uploadOk 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo 
"Sorry, your file is too large.";
    
$uploadOk 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo 
"Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    
$uploadOk 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo 
"Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo 
"The file "basename$_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo 
"Sorry, there was an error uploading your file.";
    }
}
?>


<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>
  #17 (permalink)  
Antiguo 19/10/2015, 10:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 7 meses
Puntos: 2534
Respuesta: upload imagen campo vacio al DB

Pues no te sale porque sigues haciendo todo mal.

¿En qué parte defines las variables $id y $nuevonombre eh?

Entiende que no sólo es mover el código hasta que funcione, si no razonas lo que haces jamás podrás resolver nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #18 (permalink)  
Antiguo 19/10/2015, 10:18
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 555
Antigüedad: 15 años
Puntos: 4
Respuesta: upload imagen campo vacio al DB

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues no te sale porque sigues haciendo todo mal.

¿En qué parte defines las variables $id y $nuevonombre eh?

Entiende que no sólo es mover el código hasta que funcione, si no razonas lo que haces jamás podrás resolver nada.
ok gracias de todos modos.
  #19 (permalink)  
Antiguo 19/10/2015, 12:09
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 16 años
Puntos: 154
Respuesta: upload imagen campo vacio al DB

Hola pilucho,

Es normal que pateketrueke se desespere, tiene razón en todo lo que te ha dicho, así que, aparte de revisarte el código que te he corregido, haz lo que te dice

Cita:
Iniciado por pateketrueke Ver Mensaje
Entiende que no sólo es mover el código hasta que funcione, si no razonas lo que haces jamás podrás resolver nada.
Cita:
Iniciado por pilucho;4750232
[PHP
<?php


$target_dir = "uploads/";

//Aquí tomas bien el nombre del archivo

$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {

$conn = &ADONewConnection('mysql');
$conn->Connect($dbhost,$dbuser,$dbpass,$dbdatabase);
if (isset($_POST['action']) && $_POST['action'] == 'add')
{

//PERO ESTO SIGUE ESTANDO MAL, NO VIENE POR $_POST SINO POR $_FILES

$fileToUpload = $_POST['fileToUpload'];

//LO CORRECTO SERÍA: $fileToUpload = $_FILES['fileToUpload']['name'];

//AQUÍ NUEVAMENTE ESTÁ MAL, DEBERÍA SER: $addsql = "INSERT INTO ".$tabla."documentos (fileToUpload, fecha) VALUES ('$fileToUpload ',NOW())";, SUPONIENDO QUE EN TU TABLA EL CAMPO id SEA EL ÍNDICE AUTOINCREMENTABLE, CLARO

$addsql = "INSERT INTO ".$tabla."documentos (id, fileToUpload, fecha) VALUES ('$id','$nuevonombre',NOW())";
if ($conn->Execute($addsql))

//Aquí el resto de tu código que no he revisado...

[/PHP]
Espero que con esto, te animes a documentarte un poco más y a aprender el por qué de lo que haces. (Y no es una regañina, que conste)
  #20 (permalink)  
Antiguo 19/10/2015, 14:55
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 555
Antigüedad: 15 años
Puntos: 4
Respuesta: upload imagen campo vacio al DB

Gracias rbczgz muy amable por la ayuda.

Ahora si funciona y tambien envia a la base de datos la informacion.



Código PHP:

<?php
$target_dir 
"uploads/";
$target_file $target_dir basename($_FILES["fileToUpload"]["name"]);
$uploadOk 1;
$imageFileType pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    
$check getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if(
$check !== false) {
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  Insertar a la base de datos    
    
$conn = &ADONewConnection('mysql');     
    
$conn->Connect($dbhost,$dbuser,$dbpass,$dbdatabase);
    if (isset(
$_POST['action']) && $_POST['action'] == 'add'
    {
    
//$fileToUpload = $_POST['fileToUpload'];

//    $fileToUpload = $_FILES['fileToUpload']; //   MI ERROR
    
$fileToUpload $_FILES['fileToUpload']['name']; // CORREGIDO
    
$id $_POST['id'];
    
$id = (int)$_GET['id'];
    
$addsql "INSERT INTO ".$tabla."documentos (id, fileToUpload, fecha) VALUES ('$id','$fileToUpload',NOW())";
    if (
$conn->Execute($addsql))
    echo 
"  Ingresado  ";
    else
        echo 
"  No fue,  Ingresado  ";
}
//  Fin Insertar a la base de datos    
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        
echo "File is an image - " $check["mime"] . ".";
        
$uploadOk 1;
    } else {
        echo 
"File is not an image.";
        
$uploadOk 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
    echo 
"Sorry, file already exists.";
    
$uploadOk 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo 
"Sorry, your file is too large.";
    
$uploadOk 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo 
"Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    
$uploadOk 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo 
"Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo 
"The file "basename$_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo 
"Sorry, there was an error uploading your file.";
    }
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>
  #21 (permalink)  
Antiguo 19/10/2015, 15:23
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 555
Antigüedad: 15 años
Puntos: 4
Respuesta: upload imagen campo vacio al DB

en el codigo de los if y else aparecen todo el texto sin haber procesado a que se debe y eso que lo cambie de este modo.

[
Código PHP:
<?
//////////  ORIGINAL ////////////
// Check if file already exists
if (file_exists($target_file)) {
    echo 
"Sorry, file already exists.";
    
$uploadOk 0;
}
////////////////////////////////


// MODIFICADO
// Check if file already exists
if (file_exists($target_file)) {
    echo 
"Sorry, file already exists.";
    
$uploadOk 1;
    } else {
        echo 
"Sorry, file not exists..";
        
$uploadOk 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo 
"Sorry, your file is too large.";
    
$uploadOk 1;
    } else {
        echo 
"Sorry, your file is too small.";
        
$uploadOk 0;
}
?>
  #22 (permalink)  
Antiguo 19/10/2015, 15:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 7 meses
Puntos: 2534
Respuesta: upload imagen campo vacio al DB

Usar <? no es igual que usar <?php, si no tienes configurado bien tu ambiente la primer forma <? no funcionará como esperas.

Lo correcto es siempre usar <?php para evitar este tipo de problemas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #23 (permalink)  
Antiguo 19/10/2015, 16:17
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 555
Antigüedad: 15 años
Puntos: 4
Respuesta: upload imagen campo vacio al DB

Cita:
Iniciado por pateketrueke Ver Mensaje
Usar <? no es igual que usar <?php, si no tienes configurado bien tu ambiente la primer forma <? no funcionará como esperas.

Lo correcto es siempre usar <?php para evitar este tipo de problemas.
Muchas gracias por la orientacion. apartir de ahora escribire asi como me sugieres.

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 23:27.