Muchas gracias Fabian.
Lo probaré a ver que tal va.
Saludos.
Pau.
Fabian Pino escribió:
Suponiendo que tienes algo como lo siguiente en tu BD:
Tabla users:
id (pk) | name
-------------------
1 | juan
2 | pedro
Tabla files:
id (pk) | name
----------------------------
1 | presentacion.pdf
2 | paper.pdf
Tabla files_users:
file_id (pk,fk) | user_id (pk, fk)
-----------------------------------
1 | 1
1 | 2
2 | 1
En tu vista
---------------------
<table>
<tr>
<td>Presentacion</td>
<td><?=$html->link('/files/descargar',
'download/1')?></td>
</tr>
<tr>
<td>Paper</td>
<td><?=$html->link('/files/descargar',
'download/2')?></td>
</tr>
</table>
En tu controlador
-----------------------
<?php
class FilesController extends AppController
{
function download($id_file)
{
$this->autoRender = false;
// Acá logica que valida usuario y que el archivo pertenece
// Consultas la tabla files_users con el id del archivo y el id
del usuario si lo encuentras buscas el nombre del archivo
// Si pertenece debes retornar $valid = true; y $name_file =
con el nombre del archivo
if ($valid)
{
$path = "archivos/".$name_file;
header ("Content-Disposition: attachment;
filename=".$name_file."\n\n");
header ("Content-Type: application/octet-stream");
header ("Content-Length: ".filesize($path));
readfile($path);
}
}
}
?>
El 19 de mayo de 2010 07:30, Pau <[email protected]>
escribió:
Hola
a todos.
Necesito que un usuario pueda abrir un documento pdf al pulsar un
botón, pero necesito hacer unas validaciones de seguridad antes. Por
lo tanto me gustaría llamar a una función del controller y allí
validar al usuario y ver que el documento que pide realmente le
pertenece y si es correcto abrir el documento en otra ventana.
¿Alguna idea de cómo se puede hacer esto?
Saludos y gracias.
Pau.
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es"
de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a [email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a [email protected]
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/cakephp-es?hl=es.
--
Saludos!
Fabian
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es"
de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a
[email protected]
Para tener acceso a más opciones, visita el grupo en
http://groups.google.com/group/cakephp-es?hl=es.
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a [email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a [email protected]
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/cakephp-es?hl=es.
|