Este link por ejemplo http://downloads.skate.online.ea.com/Content/xbl2/SKATE-2008/Videos/01316/859821348/JNU-MwAAAADXR39VAwN8AA.flv
Quiero que al clicar en el empieze una descarga no que me lo abra saliendo esa cosa fea. Como puedo hacerlo?
Gracias de antemano.
Lo que el quiere es una forma de incluir un enlace a ese archivo y que la gente se lo baje de manera automática.
con este código puedes hacerlo
<?php
$filename='/path/al/archivo'
$mime = mime_content_type($filename);
header("Content-Type: $mime");
$len = filesize($filename);
header("Content-Length: $len");
header("Content-Disposition: attachment;
filename=\"$nombrearchivo\"");
readfile($filename);
?>
El primer header es para indicar el tipo mime que vas a enviar, el segundo el tamaño que va a ser la descarga (así el navegador sabrá como calcular la barra de progreso en al descarga, por ejemplo) y por último, que no se abra, sino se descargue (eso es el attachment).
De esta manera se descargará el archivo y se evitará que los navegadores utilicen algún tipo de método para abrirlo (sea por plugin o por edición)
#5 vuélvete a leer los dos últimos párrafos, creo que son claros.
Si te dice que la función no está definida puede ser porque no hayas indicado correctamente la ubicación del archivo o porque no hayas indicado en el php.ini donde se encuentra ubicado el archivo magic.mime (que es muy extraño que no esté indicada).
Ojeate la documentación de php sobre los mimetype:
http://www.php.net/manual/es/ref.mime-magic.php
de todas formas, eso es solo para indicar el tipo mime, si ya sabes cual es (por ejemplo, un xml sería text/xml) lo indicas en el header y listo.
poniendo eso lo que consigo es que se me ponga a descargar el download.php y no el video. Yo quiero que se abra el download.php donde aparece el link y que al clicar en el empieze la descarga. No se si me explico :S
gracias por tu ayuda
he de suponer que ese download.php es el contenedor del código que te he indicado antes y he de suponer que no te has fijado en el código.
Donde pone $nombrearchivo es la variable que ha de contener el nombre del archivo que se va a descargar.
Osea, que si no quieres que te salga download.php has de asignar a esa variable el nombre del archivo que quieras.
Incluso, esto da más potencia a las descargas. Si tienes un archivo mp3 que se llame musica.mp3, puedes añadir datos tuyos.
Tal que, puedes hacer un:
$aux=explode('.','musica.mp3');
$nombrearchivo=$aux[0].'texto-que-yo-quiera'.aux[1];
y ese $nombrearchivo es el que se encuentra en:
header("Content-Disposition: attachment; filename=\"$nombrearchivo\"");
Por lo tanto, cuando hagan click en el link, el nombre con el que se descargará el archivo en vez de ser musica.mp3 será musica-texto-que-yo-quiera.mp3
Leete los códigos que te pasan y documentate, si no sabes, aprende cosas más básicas para empezar, y fíjate bien en las variables.