Foros del Web » Programando para Internet » PHP »

guardar links en DB MySQL para descarga archivos.

Estas en el tema de guardar links en DB MySQL para descarga archivos. en el foro de PHP en Foros del Web. Hola, Ahora lo que trato es cambiar toda la aplicacion ,que casi habia acabado y en vez de almacenar los archivos para descarga en la ...
  #1 (permalink)  
Antiguo 26/02/2008, 18:11
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
guardar links en DB MySQL para descarga archivos.

Hola,

Ahora lo que trato es cambiar toda la aplicacion ,que casi habia acabado y en vez de almacenar los archivos para descarga en la DB, los quiero guardar en una carpeta del servidor y guardar un link para su descarga en la DB, que se mostraria a los usuarios mediante un query y al clickar forzara la descarga del archivo alojado en una carpeta del servidor.

Tendriais alguna referencia a algun manual o tutorial de este tipo?
o como inserto la ruta en la DB?

Gracias.
  #2 (permalink)  
Antiguo 26/02/2008, 18:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: guardar links en DB MySQL para descarga archivos.

Revisa las FAQs del foro.

Saludos.
  #3 (permalink)  
Antiguo 26/02/2008, 18:45
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: guardar links en DB MySQL para descarga archivos.

Cita:
Iniciado por GatorV Ver Mensaje
Revisa las FAQs del foro.

Saludos.

no entiendo que debo hacer con las dos partes suguientes de codigo,
la primera parte esta clara:

Código PHP:
<?php 
if (isset($_POST['submit'])) {  
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) { // verifica haya sido cargado el archivo 
        
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $_FILES['fichero']['name'])) { // se coloca en su lugar final 
                    
echo "<b>Upload exitoso!. Datos:</b><br>"
            echo 
"Nombre: <i><a href=\"".$_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"
                        echo 
"<br><hr><br>"
        } 
    } 

// A continuación el formulario 

?> 

<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data"> 
    Archivo: <input name="fichero" type="file"> 
    <input name="submit" type="submit" value="Upload!">  
</form>

pero que debo hacer con las otras dos partes de codigo,

Código PHP:
If(is_uploaded_file($_FILE['fichero']['tmp_file']) { 
    If(
$_FILES['fichero']['type']=="image/jpeg") { 
        
// Proseguimos solo si se trata de un JPG 
        
move_uploaded_file("...etc...");  
    } else echo 
"El archivo no es una imágen JPG"
// bien puede condicionarse $_FILES['fichero']['size'] > XXXX 
// donde 'XXXX' es un número entero representando los bytes máximos del archivo 
Código PHP:
$ruta"carpeta/".$_FILES['fichero']['name']; // Se guardaría dentro de "carpeta" con el nombre original 
// $ruta= "carpeta/nuevo_nombre.jpg"; si también se quiere renombrar 
move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta); 

// Puede guardarse $ruta en una Base de Datos para su uso posterior 
he de incluir estos ultimos scripts al primero, es que no me aclaro.

Gracias.
  #4 (permalink)  
Antiguo 26/02/2008, 22:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: guardar links en DB MySQL para descarga archivos.

Lo que debes de hacer,es una vez subido el archivo,guardas la variable $_FILES['fichero']['name'] en tu base de datos.

Saludos.
  #5 (permalink)  
Antiguo 27/02/2008, 06:19
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: guardar links en DB MySQL para descarga archivos.

Gracias, entiendo lo de guardar la variable $_FILES['fichero']['name'] en la DB,

Si he entendido bien despues del codigo para subir el archivo, hago un query he introduzco la variable
$_FILES['fichero']['name']

y tambien puedo introducir en la DB las otras variables, no?
$_FILES['fichero']['type']
$_FILES['fichero']['size']


y Tambien mas datos si los incluyo en el form, como el TITULO, es asi?

y que tipo de campos MySQL seria para cada una de las variables

$_FILES['fichero']['name'] //este imagino un varchar 40
$_FILES['fichero']['type'] //pero este no se que campo seria
$_FILES['fichero']['size'] //ni este tampoco.

Y habria de crear el campo primario que fuese "id" auto_increment
o no haria falta?
  #6 (permalink)  
Antiguo 27/02/2008, 08:41
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: guardar links en DB MySQL para descarga archivos.

estoy usando el suguiente codigo para subier archivos a una carpeta de mi web pero no me los carga, no se si es un error de ruta o que

Código PHP:
<?php 
if (isset($_POST['submit'])) {  
    if(
is_uploaded_file($_FILES['fichero']['/cevit/temp'])) {
    
    
     
// verifica haya sido cargado el archivo 
    
    
        
if(move_uploaded_file($_FILES['fichero']['/cevit/temp'], $_FILES['fichero']['/cevit/archivos'])) { // se coloca en su lugar final 
                    
echo "<b>Upload exitoso!. Datos:</b><br>"
            echo 
"Nombre: <i><a href=\"".$_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"
                        echo 
"<br><hr><br>"
                        
                     
        } 
    } else {    echo 
"no se pudo cargar el archivo";}
 
// A continuación el formulario 

?> 
<body>
<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data"> 
    Archivo: <input name="fichero" type="file"> 
    <input name="submit" type="submit" value="Upload!">  
</form> </body>
no se porque no funciona, he creado las carpetas en el host
pero no las carga, pero tampoco me arroja ningun error
  #7 (permalink)  
Antiguo 27/02/2008, 08:53
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Re: guardar links en DB MySQL para descarga archivos.

pq no haces esto
Código PHP:
$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {

$ediciondir'../imgprod/';  
$uploaddir=$ediciondir;
if (!
is_dir($ediciondir)) {     mkdir($uploaddir0777);    }
move_uploaded_file($_FILES['imagen']['tmp_name'], $uploaddir $_FILES['imagen']['name']);    
$filename $_FILES['imagen']['name']; 
y declaras el insert y el select DB..

si quieres seguir usando tu codigo revisa los permisos de las carpetas... aunq el codigo deberia crear el directorio si el mismo no existe..!!!
saludos!!!
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #8 (permalink)  
Antiguo 27/02/2008, 09:13
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: guardar links en DB MySQL para descarga archivos.

Gracias, he revisado los permisos de las carpetas y estan en control total, ella y sus hijas.

el codigo que me has enviado es guapo, pero sigue sin subirme los archivos a la carpeta que le indico, tambien he provado quitando los dos puntos ../ antes del directorio y tampoco, y el caso es que error de codigo no da,

no tienes otra idea tan fresca como esa

Gracias.
  #9 (permalink)  
Antiguo 27/02/2008, 10:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: guardar links en DB MySQL para descarga archivos.

El problema es como especificas las rutas y el nombre del archivo:
Código PHP:
<?php 
if (isset($_POST['submit'])) {  
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) {
    
    
     
// verifica haya sido cargado el archivo 
        
$ruta_destino "/cevit/archivos/";
        if(
move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_destino $_FILES['fichero']['name'])) { // se coloca en su lugar final 
                    
echo "<b>Upload exitoso!. Datos:</b><br>"
            echo 
"Nombre: <i><a href=\"".$ruta_destino $_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"
                        echo 
"<br><hr><br>"
                        

// Aqui es donde insertas en tu BD la variable $_FILES['fichero']['name']
                     
        

    } else {    echo 
"no se pudo cargar el archivo";}
 
// A continuación el formulario 
}
?>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data"> 
    Archivo: <input name="fichero" type="file"> 
    <input name="submit" type="submit" value="Upload!">  
</form> </body>
Saludos.
  #10 (permalink)  
Antiguo 27/02/2008, 10:21
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: guardar links en DB MySQL para descarga archivos.

Hola,

ahora estoy provando con otro codigo que me acaban de pasar en el foro
y tampoco es capaz de subirme los archivos a una carpeta de mi web
el codigo es este y en el hosting acaban de decirme que me han habilitado todos los permisos que me hacen falta.

Código PHP:
$editFormAction $_SERVER['PHP_SELF']; 
if (isset(
$_SERVER['QUERY_STRING'])) { 
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']); 

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { 

$ediciondir'../cevit/archivos';   
$uploaddir=$ediciondir
if (!
is_dir($ediciondir)) {     mkdir($uploaddir0777);    } 
move_uploaded_file($_FILES['imagen']['tmp_name'], $uploaddir $_FILES['imagen']['name']);     
$filename $_FILES['imagen']['name']; 
No sabriais el porque??? me vuelvo loco, no creo que esto sea mas dificil que crar archivos de texto mediante codigo y luego guardarlos en un directorio de la pagina, y con eso no tuve ningun problema, pero soy incapaz de subir archivos a mi web.

Gracias.
  #11 (permalink)  
Antiguo 27/02/2008, 10:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: guardar links en DB MySQL para descarga archivos.

Prueba el código que te dí, no deberías de tener problemas.

Saludos.
  #12 (permalink)  
Antiguo 27/02/2008, 10:39
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: guardar links en DB MySQL para descarga archivos.

Gracias,
He provado con el codigo tal cual me has dado:


Código PHP:
if (isset($_POST['submit'])) {  
    if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {
    
    
     // verifica haya sido cargado el archivo 
        $ruta_destino = "/cevit/archivos/";
        if(move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_destino . $_FILES['fichero']['name'])) { // se coloca en su lugar final 
                    echo "<b>Upload exitoso!. Datos:</b><br>"; 
            echo "Nombre: <i><a href=\"".$ruta_destino . $_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"; 
            echo "Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"; 
                    echo "Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"; 
                        echo "<br><hr><br>"; 
                        

// Aqui es donde insertas en tu BD la variable $_FILES['fichero']['name']
                     
        } 
    } else {    echo "no se pudo cargar el archivo";}
 
// A continuación el formulario 
}
?>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data"> 
    Archivo: <input name="fichero" type="file"> 
    <input name="submit" type="submit" value="Upload!">  
</form> </body>


y me aparecen los errores:


Warning: move_uploaded_file(/cevit/archivos/Cromoterapia.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Inetpub\vhosts\tuboolar-web.com\httpdocs\cevit\subir_archivos.php on line 29

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\WINDOWS\Temp\php30EC.tmp' to '/cevit/archivos/Cromoterapia.pdf' in C:\Inetpub\vhosts\tuboolar-web.com\httpdocs\cevit\subir_archivos.php on line 29


y la line 29 es:

Código PHP:
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_destino $_FILES['fichero']['name'])) { // se coloca en su lugar 
Gracias.
  #13 (permalink)  
Antiguo 27/02/2008, 10:56
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: guardar links en DB MySQL para descarga archivos.

Ya he corregido el error, Muchas y sinceras Gracias GatorV
solo tuve que poner los dos dichosos puntos anter de la ruta ../

El codigo queda asi por si le hace falta a alguien mas hoy lo tenga
GRacias.

Código PHP:
<?php 
if (isset($_POST['submit'])) {  
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) {
    
    
     
// me verifica haya sido cargado el archivo 
        
$ruta_destino "../carpeta/carpeta/";
        if(
move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta_destino $_FILES['fichero']['name'])) { // se coloca en su lugar final 
                    
echo "<b>Upload exitoso!. Datos:</b><br>"
            echo 
"Nombre: <i><a href=\"".$ruta_destino $_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>"
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>"
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>"
                        echo 
"<br><hr><br>"
                        

// Aqui es donde tendre que insertar en la BD la variable $_FILES['fichero']['name']
                     
        

    } else {    echo 
"no se pudo cargar el archivo";}
 
// A continuación el formulario 
}
?>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data"> 
    Archivo: <input name="fichero" type="file"> 
    <input name="submit" type="submit" value="Upload!">  
</form> </body>
  #14 (permalink)  
Antiguo 27/02/2008, 11:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: guardar links en DB MySQL para descarga archivos.

El problema es que tu ruta de destino esta mal, verifica que la variable $ruta_destino, tenga la ruta correcta a la carpeta donde vas a poner los archivos.

Recuerda también que cuando trabajas con archivos directamente en PHP, las rutas son las físicas, no las rutas como si fueran vía Web.

Saludos.
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 01:56.