Foros del Web » Programando para Internet » PHP »

Problemas, a subir archivod a BD

Estas en el tema de Problemas, a subir archivod a BD en el foro de PHP en Foros del Web. Saludos, antes de publicar esto, busque en muchos post sobre maneras de subir archivos y guardar el binario en la base de datos, la mayoria ...
  #1 (permalink)  
Antiguo 19/01/2006, 20:43
Avatar de kalolo  
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
Problemas, a subir archivod a BD

Saludos, antes de publicar esto, busque en muchos post sobre maneras de subir archivos y guardar el binario en la base de datos, la mayoria es la misma escencia, pero no vi a alguien que tubiera el mismo problema que yo.

Bueno.. mi problema realmente esque cierto archivos si los guarda, y no tiene que ver con el peso, mas que nada losque si guarda son archivos de imagen, pdf, y txt .... y falla con archivox xls, audio.. bueno ... algunos...

Leei tambien la funcion que usa cluster, es ahi donde vi lo de addslahes apartir de ahi funciono para guardar imagenes tambien :| .. bueno.. dejo el codigo y espero puedan ayudarme en que estoy mal

funcion para subir:
Código PHP:

    
if(isset($_POST['btnSubirArchivo']))/* checamos el boton subir archivo */
    
{
        if(!
$_POST['txtArchivo_Titulo'] || !$_POST['txtArchivo_Descripcion'] || !$_FILES['File'])//<- Validamso que lso campos no esten vacios
        
$msg='<span class="msgerror">Error, no puedes dejar campos vacios.</span>'; }
        else
        {
            if(
is_uploaded_file($_FILES['File']['tmp_name']))//<- Evualmos que el servidor ya tenga posecion del archivo.
            
{
                
$Binario_TMP=fopen($_FILES['File']['tmp_name'],'r');//<- Abrimos el archivo de manera binaria.
                
$binario_contenido=addslashes(fread($Binario_TMP,$_FILES['File']['size']));//<- Leemos todo el contenido del mismo.
                
$binario_nombre $_FILES['File']['name'];//<- Nombre del archivo otorgado por el cliente.
                
$binario_peso =   $_FILES['File']['size'];//<- Peso del archivo.
                
$binario_tipo =   $_FILES['File']['type'];//<- Tipo de archivo. 
                
                /* Creamos el string del insert */
                
$Insert="INSERT INTO archivos (id_user, nombre, tipo, archivo, size, titulo, descripcion, fecha) VALUES ('".$_SESSION['id_user']."', '".$binario_nombre."', '".$binario_tipo."', '".$binario_contenido."',  '".$binario_peso."', '".$_POST['txtArchivo_Titulo']."', '".$_POST['txtArchivo_Descripcion']."', '".$fch."');";
                
                
/*- Ejecutamos la insercion. y evaluamos si hay error -*/
                
if(!mysql_query($Insert))
                  
$msg='<span class="msgerror">Error en la consulta</span>';
                 else
                  
$msg='<span class="msgexito">Archivo guardado.</span>';                 
            }            
        } 
Form:
Código HTML:
<table width="650" border="0" cellspacing="0" cellpadding="0">
  <tr align="left" valign="bottom">
    <td width="48"><img src="images/icons/TextFile.png" width="48" height="48"></td>
    <td width="602" valign="middle" class="title1">Subir Archivo </td>
  </tr>
  <tr>
    <td colspan="2">

<form action="?op=subir_archivo" method="post" enctype="multipart/form-data" name="form_SubirArchivo">
      <table width="100%" border="0" cellspacing="2" cellpadding="0">
        <tr align="left" valign="bottom">
          <td width="12%" class="title1">Archivo:</td>
          <td width="88%"><input name="File" type="file" class="estilo-inputs1" id="File" size="50"></td>
        </tr>
        <tr align="left" valign="bottom">
          <td class="title1">Titulo:</td>
          <td><input name="txtArchivo_Titulo" type="text" class="estilo-inputs1" id="txtArchivo_Titulo" size="50"></td>
        </tr>
        <tr align="left" valign="bottom">
          <td colspan="2" class="title1">Descripcion:</td>
        </tr>
        <tr align="left" valign="bottom">
          <td colspan="2"><textarea name="txtArchivo_Descripcion" cols="120" rows="8" class="estilo-inputs1" id="txtArchivo_Descripcion"></textarea></td>
        </tr>
        <tr>
          <td colspan="2"><input name="btnSubirArchivo" type="submit" class="Boton1" id="btnSubirArchivo" value="Subir Archivo"><?php echo $msg; echo $tabla; ?></td>
        </tr>
      </table>
    </form>

</td>
  </tr>
</table> 

Saludos, y de ante mano .. gracias.
__________________
There is no place like 127.0.0.1
  #2 (permalink)  
Antiguo 19/01/2006, 22:33
Avatar de kalolo  
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
URL Test con source :
/* no url */

Puse que imprimiera el $Insert cuadno la consulta falla ... tondo indica error de concatenado ..
pero :|


weno.. ya no se ni que es. .... e estaod probando con imagenes, porque son las unicas que sube bien.. pero me doy cuenta que cuando son imagenes tamaño "grande",.... si graba bien .. pero rellen como un 75% en blanco o.O!!
__________________
There is no place like 127.0.0.1

Última edición por kalolo; 20/01/2006 a las 01:11
  #3 (permalink)  
Antiguo 20/01/2006, 00:13
Avatar de kalolo  
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
Bueno, las imagenes ya las guarda bien...... pero caundo quiero gaurdar archivos .. ejm: xls .. falla la conexion
alguien tiene una idea porque truena? sigo con que es problema de la concateanda a la hora de formar el string Insert. pero no se como arreglarlo.


Por cierto.. si prueban la url .. talvez se quede ciclado su navegador.. :( esto es porque mi conexion no es muy buena que digamos ... pero con ciertos isp si jala bien ...
__________________
There is no place like 127.0.0.1
  #4 (permalink)  
Antiguo 20/01/2006, 00:47
Avatar de kalolo  
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
!listo! ya quedo,..,


ahora si guarda bien las imagenes.
__________________
There is no place like 127.0.0.1
  #5 (permalink)  
Antiguo 20/01/2006, 00:49
Avatar de kalolo  
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años
Puntos: 0
De acuerdo

em... ya lo resolvi :$ , acutalize php :| (ports es la bendicion :) )
pero bueno... ahora me queda el problema de que hacer con los archivos mayores a 2m.. igual puedo editar el php.ini pero aun asi .. archivos de 10m .. porque se espera poder tener archivos de aprox 20m


Que se puede hacer para manejar estos archivos?, algun metodo de conexion por ftp ?

saludos!
__________________
There is no place like 127.0.0.1
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 09:56.