Foros del Web » Programando para Internet » PHP »

formato para archivos

Estas en el tema de formato para archivos en el foro de PHP en Foros del Web. estoy colocando musica (mp3) en una pagina php para que las personas puedan descargarlas desde su telefono el problema es que si no lo comprimo ...
  #1 (permalink)  
Antiguo 24/02/2015, 10:17
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 8 meses
Puntos: 2
formato para archivos

estoy colocando musica (mp3) en una pagina php para que las personas puedan descargarlas desde su telefono el problema es que si no lo comprimo como (.zip) o (.rar) no me descarga la canción de la pagina sino que me la reproduce
  #2 (permalink)  
Antiguo 24/02/2015, 11:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: formato para archivos

Es normal, porque los navegadores pueden modificar el comportamiento de un archivo cuando se descarga.

Ahora, para evitarlo simplemente debes forzar la descarga.

Busca: php forzar descarga
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/02/2015, 12:52
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 10 meses
Puntos: 21
Respuesta: formato para archivos

lo que te recomienda el amigo pateketrueke es barbaro, siempre y cuando los archivos no sean muy grandes.. en ese casote vas a encontrar con el problema de timeout de php.. o cosas por el estilo.. para lo cual te recomiendo hacer directamente por el apache con htaccess, al cual le debrias poner la siguiente linea, y ponerlo en el directorio de tus mp3

AddType application/octet-stream .mp3 .avi

espero que te sirva
  #4 (permalink)  
Antiguo 24/02/2015, 18:35
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: formato para archivos

amigos yo quiero colocar canciones en mi web para que los usurios puedan descargarlas tendria que comprimir las canciones o las puedo dejar .mp3?
  #5 (permalink)  
Antiguo 25/02/2015, 04:06
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 11 años, 4 meses
Puntos: 401
Respuesta: formato para archivos

Mp3, ya es un formato de compresión. Comprimir dos veces es una tontería.... y encima el engorro que le generas a el usuario que tiene que descomprimir un zip en un smartfhone.
Lo que te dijo pateketrueke es perfecto.
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #6 (permalink)  
Antiguo 25/02/2015, 04:13
 
Fecha de Ingreso: enero-2015
Mensajes: 205
Antigüedad: 9 años, 9 meses
Puntos: 18
Respuesta: formato para archivos

Estoy de acuerdo, empaquetarlas en un zip NO es muy buena idea.
  #7 (permalink)  
Antiguo 25/02/2015, 07:53
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: formato para archivos

Amigos tengo este codigo

creo un archivo llamado download.php

<?php
$file = $_GET['file'];
header("Content-disposition: attachment; filename=$file");
header("Content-type: application/octet-stream");
readfile($file);
?>

luego en mi pagina coloco este link

<a href="download.php?file=imagen.jpg">Descargar</a>


lo que no entiendo es si en esta linea del codigo debo colocar el nombre de la cancion.mp3

Con “Content-disposition: attachment; filename=$file” indicamos que el archivo se debe mostrar como adjunto (para descargar).
  #8 (permalink)  
Antiguo 25/02/2015, 08:03
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 10 meses
Puntos: 21
Respuesta: formato para archivos

hola... lo unico que deberias hacer es

<a href="download.php?file=cancion.mp3">Descargar</a>

yo insisto. en que uses... el htaccess
  #9 (permalink)  
Antiguo 25/02/2015, 08:04
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 6 meses
Puntos: 76
Respuesta: formato para archivos

Hola puedes probar con este codigo :

Código HTML:
Ver original
  1. <a href="download.php?archivo=cancion.mp3">Descargar MP3</a>


download.php

Código PHP:
Ver original
  1. $ar=$_GET['archivo']; //Obtenemos  el archivo desde get
  2. $separar=explode('.',$ar);//separamos  desde el punto
  3. $extencion=$separar[1];//creamos  Variable que contenga despues del punto
  4. $extenciones_permitidas=array('jpg','jpeg','gif','png',"mp3");//Creamos un array con las extenciones  que queremos que baje(se pueden añadir mas)
  5. if (in_array($extencion,$extenciones_permitidas)) {//Si la extencion es permitida  continuamos
  6.  
  7. if(file_exists($ar)){//Si el  archivo existe continuamos
  8. $filepath = ($ar);//Creamos  variable con nombre del archivo
  9. header("HTTP/1.1 200 OK");//testeamos  cabecera
  10. header("Status: 200 OK"); //testeamos   cabecera
  11. header('Content-Type: text/php');//testeamos   cabecera
  12. header('Content-Disposition: attachment; filename="'.$filepath.'"'); //testeamos  cabecera
  13. header('Content-Length: '.filesize($filepath));//testeamos  cabecera
  14. readfile($filepath);//Descargamos  mediante readfile
  15. }else{//Si no existe
  16. echo"El archivo: ".$ar." No existe";//Lo  decimos
  17. }
  18. } else {//Si la extencion no se  puede descargar
  19. echo"El archivo: ".$ar." No Puede ser descargado";//Lo  decimos
  20. }

fuente : http://www.taringa.net/comunidades/p...a-con-PHP.html
  #10 (permalink)  
Antiguo 25/02/2015, 09:19
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: formato para archivos

amigo informacionsys la pagina me funciona perfectamente con la explicacion que me diste el problema es cuando intento descargar la canción desde un android no me la descarga me dice error pero desde la pc me funciona perfectamente crees que con este codigo que me das me funcione en android?
  #11 (permalink)  
Antiguo 25/02/2015, 09:21
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: formato para archivos

Cita:
Iniciado por marcusaurelio Ver Mensaje
hola... lo unico que deberias hacer es

<a href="download.php?file=cancion.mp3">Descargar</a>

yo insisto. en que uses... el htaccess

noc como utilizar el htaccess con el codigo que tengo la pagina me funciona correctamente el problema es cuando trato de descargar desde un disposito android
  #12 (permalink)  
Antiguo 25/02/2015, 09:25
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 6 meses
Puntos: 76
Respuesta: formato para archivos

hola... hice la prueba visualizando el link desde el navegador del celular y la descarga directamente ....
  #13 (permalink)  
Antiguo 25/02/2015, 09:27
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: formato para archivos

Cita:
Iniciado por marcusaurelio Ver Mensaje
hola... lo unico que deberias hacer es

<a href="download.php?file=cancion.mp3">Descargar</a>

yo insisto. en que uses... el htaccess
Cita:
Iniciado por informacionsys Ver Mensaje
hola... hice la prueba visualizando el link desde el navegador del celular y la descarga directamente ....

Desde el dispositivo android?
  #14 (permalink)  
Antiguo 25/02/2015, 09:39
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 10 meses
Puntos: 21
Respuesta: formato para archivos

lo del htaccess...

crear un archivo llamado "htaccess.txt" obviamente sin las comas..
en el mismo escribis esto

Código:
AddType application/octet-stream .mp3
lo guardas y lo cerras.. y lo renombras... para que quede asi ".htaccess" y eso lo subis a la carpeta donde tenes los mp3.. y ahi te lo descarga.. y si por casualidad tenes un mp3 que pese.. lo que pesa un camion de caudales, lo va a descargar igual.
  #15 (permalink)  
Antiguo 25/02/2015, 09:39
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 6 meses
Puntos: 76
Respuesta: formato para archivos

si claro desde mi dispositivo
  #16 (permalink)  
Antiguo 25/02/2015, 09:41
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: formato para archivos

Cita:
Iniciado por informacionsys Ver Mensaje
si claro desde mi dispositivo



amigo me da el siguiente error

$ar=$_GET['archivo']; //Obtenemos el archivo desde get $separar=explode('.',$ar);//separamos desde el punto $extencion=$separar[1];//creamos Variable que contenga despues del punto $extenciones_permitidas=array('jpg','jpeg','gif',' png',"mp3");//Creamos un array con las extenciones que queremos que baje(se pueden añadir mas) if (in_array($extencion,$extenciones_permitidas)) {//Si la extencion es permitida continuamos if(file_exists($ar)){//Si el archivo existe continuamos $filepath = ($ar);//Creamos variable con nombre del archivo header("HTTP/1.1 200 OK");//testeamos cabecera header("Status: 200 OK"); //testeamos cabecera header('Content-Type: text/php');//testeamos cabecera header('Content-Disposition: attachment; filename="'.$filepath.'"'); //testeamos cabecera header('Content-Length: '.filesize($filepath));//testeamos cabecera readfile($filepath);//Descargamos mediante readfile }else{//Si no existe echo"El archivo: ".$ar." No existe";//Lo decimos } } else {//Si la extencion no se puede descargar echo"El archivo: ".$ar." No Puede ser descargado";//Lo decimos }
  #17 (permalink)  
Antiguo 25/02/2015, 09:46
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 10 meses
Puntos: 21
Respuesta: formato para archivos

si te imprime eso.. es que mno esta corriendo php.. o no lo tagueaste bien.. podes pegar el codigo completo del script? de tag a tag incluyendolos?
  #18 (permalink)  
Antiguo 25/02/2015, 09:47
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 10 meses
Puntos: 21
Respuesta: formato para archivos

perdon... pero reacuerda que ese ejemplo debes ponerlo entre <?php .......... ?>
  #19 (permalink)  
Antiguo 25/02/2015, 11:56
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: formato para archivos

ahora me sale

El archivo: No Puede ser descargado
  #20 (permalink)  
Antiguo 25/02/2015, 12:00
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: formato para archivos

Cita:
Iniciado por informacionsys Ver Mensaje
si claro desde mi dispositivo


tengo este problema ahora amigo


Warning: Cannot modify header information - headers already sent by (output started at /home/millanst/public_html/download.php:1) in /home/millanst/public_html/download.php on line 10

Warning: Cannot modify header information - headers already sent by (output started at /home/millanst/public_html/download.php:1) in /home/millanst/public_html/download.php on line 11

Warning: Cannot modify header information - headers already sent by (output started at /home/millanst/public_html/download.php:1) in /home/millanst/public_html/download.php on line 12

Warning: Cannot modify header information - headers already sent by (output started at /home/millanst/public_html/download.php:1) in /home/millanst/public_html/download.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at /home/millanst/public_html/download.php:1) in /home/millanst/public_html/download.php on line 14
  #21 (permalink)  
Antiguo 25/02/2015, 12:50
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: formato para archivos

tengo este codigo pero me dice que el archivo no existe entiendo que tengo que colocar la ruta del archivo en ($root = "archivos/";) pero ya no se que ruta colocar estoy utilizando un hosting me imagino que tendria que ser public_html/carpeta


<?php

if (!isset($_GET['file']) || empty($_GET['file'])) {
exit();
}
$root = "archivos/";
$file = basename($_GET['file']);
$path = $root.$file;
$type = '';

if (is_file($path)) {
$size = filesize($path);
if (function_exists('mime_content_type')) {
$type = mime_content_type($path);
} else if (function_exists('finfo_file')) {
$info = finfo_open(FILEINFO_MIME);
$type = finfo_file($info, $path);
finfo_close($info);
}
if ($type == '') {
$type = "application/force-download";
}
// Definir headers
header("Content-Type: $type");
header("Content-Disposition: attachment; filename=$file");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $size);
// Descargar archivo
readfile($path);
} else {
die("El archivo no existe.");
}

?>
  #22 (permalink)  
Antiguo 25/02/2015, 13:08
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 10 meses
Puntos: 21
Respuesta: formato para archivos

eso es por que se largo una impresion de algo.. antes de los headers por eso.. no deja modificarlos.. en este caso parece ser que tenes una linea en blanco al principio del archivo... eliminala..
que en la primer linea y en el primer espacio de la linea.. este <?php
  #23 (permalink)  
Antiguo 25/02/2015, 21:14
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: formato para archivos

Cita:
Iniciado por marcusaurelio Ver Mensaje
eso es por que se largo una impresion de algo.. antes de los headers por eso.. no deja modificarlos.. en este caso parece ser que tenes una linea en blanco al principio del archivo... eliminala..
que en la primer linea y en el primer espacio de la linea.. este <?php
gracias amigo ya resolví

Etiquetas: formato
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 16:58.