Foros del Web » Programando para Internet » PHP »

Subi .doc a servidor y guardar datos en MySQL

Estas en el tema de Subi .doc a servidor y guardar datos en MySQL en el foro de PHP en Foros del Web. Muy buenas a todos, estoy experimentando un poco sobre subir archivos .doc al servidor y guardar sus datos en MySQL: Código PHP: <?php include( "conexion.php" ...
  #1 (permalink)  
Antiguo 21/10/2010, 16:11
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 9 meses
Puntos: 5
Subi .doc a servidor y guardar datos en MySQL

Muy buenas a todos, estoy experimentando un poco sobre subir archivos .doc al servidor y guardar sus datos en MySQL:

Código PHP:
<?php
include("conexion.php");

$title strtolower(htmlentities($_POST["title"], ENT_QUOTES));

if (
is_uploaded_file($_FILES['archivo']['tmp_name'])){

    if(
$_FILES['archivo']['size'] < 2000000) {
    
    
$tamano $_FILES 'archivo' ][ 'size' ]; 
    
        
$tipo $_FILES["archivo"]['type'];

if(
$tipo =="text/richtext") {

            
$archivo $_FILES["archivo"]['name'];
            
            
$prefijo substr(md5(uniqid(rand())),0,5);
            
            
$destino 'fotos/'.$prefijo."_".$archivo;
            
            
copy($_FILES['archivo']['tmp_name'], $destino);
            
            
mysql_query("insert into tutorial(title,foto) value ('$title','$destino')");
            
            echo 
"Archivo subido: <b>".$_FILES['archivo']['name']."</b>";
        } else{
            echo 
"No se puede subir el archivo seleccionado";
        }
    }
}
?>
Código HTML:
<form action="updoc.php" method="post" enctype="multipart/form-data">
nombre   
  <input name="title" type="text" id="title">
<br />
Archivo
<input type="file" name="archivo">
<br />
<input type="submit" value="Enviar">
</form> 
( Usé una tabla que ya tenia echa por algo que hize ayer, los valores de esa tabla son "varchar y text" no creo que traiga problemas a la hora de escribirlos ... )


El problema es que no escribe y además, no aparecen los archivos ... Leí por ahi que se usa "text/richtext" para los archivos .doc (quiero implementar esto en linux CentOS) sé que por ahi hay algo que era application/msword en vez de text/richtext pero no corre bajo linux.

¿ Cómo puedo hacer ? Nosé donde esta el problema ...

Busqué un script o alguna aplicacion ajax php para hacer esto pero con un toque mas "profesional" pero las que encontre tenian licencia.

¿ Alguna idea ?
Solo necesito subir archivos al servidor y escribir los datos en la bd para luegos mostrarlos por $_get en un form.

Saludos a todos!, y disculpen las molestias.
  #2 (permalink)  
Antiguo 21/10/2010, 16:37
Avatar de CazaresLuis  
Fecha de Ingreso: septiembre-2010
Ubicación: Distrito Federal
Mensajes: 67
Antigüedad: 13 años, 6 meses
Puntos: 2
Información Respuesta: Subi .doc a servidor y guardar datos en MySQL

Cita:
Iniciado por VbOkonly Ver Mensaje
Muy buenas a todos, estoy experimentando un poco sobre subir archivos .doc al servidor y guardar sus datos en MySQL:

Código PHP:
<?php
include("conexion.php");

$title strtolower(htmlentities($_POST["title"], ENT_QUOTES));

if (
is_uploaded_file($_FILES['archivo']['tmp_name'])){

    if(
$_FILES['archivo']['size'] < 2000000) {
    
    
$tamano $_FILES 'archivo' ][ 'size' ]; 
    
        
$tipo $_FILES["archivo"]['type'];

if(
$tipo =="text/richtext") {

            
$archivo $_FILES["archivo"]['name'];
            
            
$prefijo substr(md5(uniqid(rand())),0,5);
            
            
$destino 'fotos/'.$prefijo."_".$archivo;
            
            
copy($_FILES['archivo']['tmp_name'], $destino);
            
            
mysql_query("insert into tutorial(title,foto) value ('$title','$destino')");
            
            echo 
"Archivo subido: <b>".$_FILES['archivo']['name']."</b>";
        } else{
            echo 
"No se puede subir el archivo seleccionado";
        }
    }
}
?>
Código HTML:
<form action="updoc.php" method="post" enctype="multipart/form-data">
nombre   
  <input name="title" type="text" id="title">
<br />
Archivo
<input type="file" name="archivo">
<br />
<input type="submit" value="Enviar">
</form> 
( Usé una tabla que ya tenia echa por algo que hize ayer, los valores de esa tabla son "varchar y text" no creo que traiga problemas a la hora de escribirlos ... )


El problema es que no escribe y además, no aparecen los archivos ... Leí por ahi que se usa "text/richtext" para los archivos .doc (quiero implementar esto en linux CentOS) sé que por ahi hay algo que era application/msword en vez de text/richtext pero no corre bajo linux.

¿ Cómo puedo hacer ? Nosé donde esta el problema ...

Busqué un script o alguna aplicacion ajax php para hacer esto pero con un toque mas "profesional" pero las que encontre tenian licencia.

¿ Alguna idea ?
Solo necesito subir archivos al servidor y escribir los datos en la bd para luegos mostrarlos por $_get en un form.

Saludos a todos!, y disculpen las molestias.
Hola buenas tardes, creo que tu problema esta aqui:
Código PHP:
// Error
mysql_query("insert into tutorial(title,foto) value ('$title','$destino')"); 


// Correcto
mysql_query("insert into tutorial SET title='$title', foto='$destino'); 
En el caso de los archivos verifica si los permisos de la carpeta donde subiras los archivos es 777, los puedes cambiar con tu cliente FTP

Saludos
  #3 (permalink)  
Antiguo 21/10/2010, 18:30
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 9 meses
Puntos: 5
Respuesta: Subi .doc a servidor y guardar datos en MySQL

Hola, agradesco tu ayuda, la carpeta ya tenia los permisos '777', hay algo que es raro, mira este codigo:

Código PHP:
<?php
if (is_uploaded_file($_FILES['archivo']['tmp_name'])){
    if(
$_FILES['archivo']['size'] < 200000) {
        
$tipo=$_FILES["archivo"]['type'];
        if(
strpos($tipo"gif") || strpos($tipo"jpeg") || strpos($tipo"png")) {
            
$archivo $_FILES["archivo"]['name'];
            
$prefijo substr(md5(uniqid(rand())),0,5);
            
$destino 'C:/AppServ/www/mil/fotos/'.$prefijo."_".$archivo;
            
            
copy($_FILES['archivo']['tmp_name'], $destino);
            
            
//Conecto con la bd
            
mysql_connect("localhost","root","root");
            
//selecciono la bd con la que voy a trabajar
            
mysql_select_db("mibase");
            
//Ejecuto de la sentencia SQL
            
mysql_query("insert into admin_user(title,foto) value ('$title','$destino')");
            
            echo 
"Archivo subido: <b>".$_FILES['archivo']['name']."</b>";
        } else{
            echo 
"Error: El archivo seleccionado no es una imagen o excede de 200kb";
        }
    }
}
?>
El form es el mismo ...

Y lo peor es que me funciona :( (pero en este solo sirve para fotos)

Creo que el problema esta en la linea que reconoce al $_FILE como ".doc" con text/richtext ... Solo conosco ese metodo, si conoces algun otro me seria muy util probarlo.

Muchas gracias de antemano :) !.
  #4 (permalink)  
Antiguo 21/10/2010, 19:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Subi .doc a servidor y guardar datos en MySQL

y no se te ocurrió usar esto?
Código PHP:
strpos($tipo'doc'
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 21/10/2010, 19:42
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 9 meses
Puntos: 5
Respuesta: Subi .doc a servidor y guardar datos en MySQL

Hola pateketrueke

Código PHP:
strpos($tipo'doc'
No funcionó, le encontre la solución con esto

Código PHP:
if($tipo =="application/msword"
En el hosting que lo estoy corriendo es linux, pensé que hacia algun tipo de "problema" ya que es word de ms ...

Si alguien necesita, aca tienen el codigo echo:

Código PHP:
<?php
include("conexion.php");

$title strtolower(htmlentities($_POST["title"], ENT_QUOTES));

if (
is_uploaded_file($_FILES['archivo']['tmp_name'])){

    if(
$_FILES['archivo']['size'] < 2000000) {
    
    
$tamano $_FILES 'archivo' ][ 'size' ]; 
    
        
$tipo $_FILES["archivo"]['type'];

if(
$tipo =="application/msword") {

            
$archivo $_FILES["archivo"]['name'];
            
            
$prefijo substr(md5(uniqid(rand())),0,5);
            
            
$destino 'fotos/'.$prefijo."_".$archivo;
            
            
copy($_FILES['archivo']['tmp_name'], $destino);
            
            
mysql_query("insert into tutorial SET title='$title', foto='$destino'");
            
            echo 
"Archivo subido: <b>".$_FILES['archivo']['name']."</b>";
        } else{
            echo 
"No se puede subir el archivo seleccionado";
        }
    }
}
?>
Para subir a un directorio y cargar los datos en MySQL de archivos .doc
Ahora estoy apuntandome como cargar otros formatos :). Y depurar más el documento para evitar ataques.

Saludos y gracias !.

Etiquetas: doc, mysql, servidores
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 14:06.