Cómo forzar un archivo (mp3) a que de la opcion de guardar y abrir en Drupal
// Crear un hook
$items['mp3s'] = array(
'page callback' => 'mp3s',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK
);
//Crear funcion
function mp3s(){
$f = $_GET['file'];
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$f\"\n");
$fp=fopen("$f","r");
fpassthru($fp);
}
Luego de realizar el hook y su función respectiva para cargar los encabezados, en una vista podría ser:
1. traer el campo o archivo (mp3), para este caso es un archivo .mp3 ([field_pod_fid_1]) que lo muestro trayendo la Ruta a fichero y no el link. esto traerá algo asi: /sites/default/files/nombre_archivo.mp3
2. Adicionar un campo cualquiera, puede ser el Título y en la opción Rewrite the output of this field checkearla y poner lo siguiente:
<a href="mp3s?file=[field_pod_fid_1]" class="descargar_audio" target="_blank">Descargar audio</a>
[field_pod_fid_1], es el nombre del campo adicionado anteriormente.
Listo.
$items['mp3s'] = array(
'page callback' => 'mp3s',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK
);
//Crear funcion
function mp3s(){
$f = $_GET['file'];
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$f\"\n");
$fp=fopen("$f","r");
fpassthru($fp);
}
Luego de realizar el hook y su función respectiva para cargar los encabezados, en una vista podría ser:
1. traer el campo o archivo (mp3), para este caso es un archivo .mp3 ([field_pod_fid_1]) que lo muestro trayendo la Ruta a fichero y no el link. esto traerá algo asi: /sites/default/files/nombre_archivo.mp3
2. Adicionar un campo cualquiera, puede ser el Título y en la opción Rewrite the output of this field checkearla y poner lo siguiente:
<a href="mp3s?file=[field_pod_fid_1]" class="descargar_audio" target="_blank">Descargar audio</a>
[field_pod_fid_1], es el nombre del campo adicionado anteriormente.
Listo.

Comentarios
Publicar un comentario