Foros del Web » Programando para Internet » PHP »

Cambiar script de upload de imagenes a upload mp3

Estas en el tema de Cambiar script de upload de imagenes a upload mp3 en el foro de PHP en Foros del Web. Hola, que tal? Bueno, me baje un script de desarrolloweb es muy simple pero cuando quiero modificar los archivos a subir a mp3 falla la ...
  #1 (permalink)  
Antiguo 13/08/2008, 06:06
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Pregunta Cambiar script de upload de imagenes a upload mp3

Hola, que tal? Bueno, me baje un script de desarrolloweb es muy simple pero cuando quiero modificar los archivos a subir a mp3 falla la funcion y me dice que los archivos no teienen el formato correcto o son muy grandes, les pongo el codigo.
Subearchivo.php (original):
Código PHP:
<?
$nombre_archivo 
$HTTP_POST_FILES['userfile']['name'];
$carpeta "$grupo/$nombre_archivo";
$tipo_archivo $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"jpeg")) && ($tamano_archivo 100000))) {
    echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos de imagen<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
    if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $carpeta)){
        echo 
"El archivo ha sido cargado correctamente.";
    }else{
        echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";
    }
}
?>
Subearchivo.php (modificado para que funcione, no va):
Código PHP:
<?
$nombre_archivo 
$HTTP_POST_FILES['userfile']['name'];
$carpeta "$grupo/$nombre_archivo";
$tipo_archivo $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo"mp3") || strpos($tipo_archivo"MP3")) && ($tamano_archivo 8000000))) {
    echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos mp3<br><li>se permiten archivos de 8Mg máximo.</td></tr></table>";
}else{
    if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $carpeta)){
        echo 
"El archivo ha sido cargado correctamente.";
    }else{
        echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";
    }
}
?>
Gracias por las molestias y saludos!
__________________
Videos de Metal
  #2 (permalink)  
Antiguo 13/08/2008, 06:53
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Cambiar script de upload de imagenes a upload mp3

¿Has probado con poner echo $tamano_archivo para saber qué valor te está devolviendo?. Prueba, y nos cuentas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 13/08/2008, 07:04
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Respuesta: Cambiar script de upload de imagenes a upload mp3

No te he entendido, ¿podrias poner el ejemplo?, por que no tengo ni idea de lo que me has dicho , gracias por responder
__________________
Videos de Metal
  #4 (permalink)  
Antiguo 13/08/2008, 07:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Cambiar script de upload de imagenes a upload mp3

Lo que quise decir es que antes del if coloques esta línea:
Código PHP:
echo $tamano_archivo
Así vas a saber si no es por causa del valor devuelto en esa variable que no está pasando del if, y tal vez también poner:
Código PHP:
echo $tipo_archivo
Porque es por una de esas dos variables que está el problema, si pones así podrás comprobar su valor.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 13/08/2008, 07:33
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Respuesta: Cambiar script de upload de imagenes a upload mp3

Ya lo he hecho, sale el mismo error, pero nada mas, dice:
La extensión o el tamaño de los archivos no es correcta. Se permiten archivos mp3 Se permiten archivos de 8Mg máximo.
P.D: el original funcionaba, bien, pero solo con imagenes
__________________
Videos de Metal
  #6 (permalink)  
Antiguo 13/08/2008, 07:41
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Cambiar script de upload de imagenes a upload mp3

Lo que te puse no soluciona el error, solo sirve para saber cuál es el valor de las variables, ¿cuál es el valor que te imprime?. Porque debido al valor de esas variables no están pasando de la condición.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 13/08/2008, 07:43
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Respuesta: Cambiar script de upload de imagenes a upload mp3

No imprime ningun valor, solo sale lo que te dije antes, por lo menos con este codigo, aunque las variable creo que pasan bien, por que en el original si que pasaban ¿no? :
Código PHP:
<? 
$nombre_archivo 
$HTTP_POST_FILES['userfile']['name']; 
$carpeta "$grupo/$nombre_archivo"
$tipo_archivo $HTTP_POST_FILES['userfile']['type']; 
$tamano_archivo $HTTP_POST_FILES['userfile']['size'];
echo 
$tama&#241;o_archivo;
//compruebo si las características del archivo son las que deseo 
if (!((strpos($tipo_archivo"mp3") || strpos($tipo_archivo"MP3")) && ($tamano_archivo 8000000))) { 
    echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos mp3<br><li>se permiten archivos de 8Mg máximo.</td></tr></table>"
}else{ 
    if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $carpeta)){ 
        echo 
"El archivo ha sido cargado correctamente."
    }else{ 
        echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse."
    } 

?>
El codigo del formulario es este, por si sirve de algo:
Código PHP:
<form action="subearchivo.php" method="post" enctype="multipart/form-data">
        <input type="hidden" name="MAX_FILE_SIZE" value="100000">
        <br>
        <br>
        <b>Enviar un nuevo archivo: </b>
                <br>
                <input name="userfile" type="file">
                <br>
                <input type="radio" name="grupo" value="<?php echo $grupo;?>" checked>Tus archivos subiran a la carpeta <?php echo $grupo;?>
        <br>
        <input type="submit" value="Enviar">
    </form>
__________________
Videos de Metal
  #8 (permalink)  
Antiguo 13/08/2008, 07:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Cambiar script de upload de imagenes a upload mp3

Coloca el nombre de la variable tal cual lo tienes. Así:
Código PHP:
echo $tamano_archivo
Sí o sí tiene que imprimir el valor de la variable... a no ser que la variable no esté tomando ningún valor.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 13/08/2008, 11:03
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Cambiar script de upload de imagenes a upload mp3

Te recomiendo cambiar un poco la forma en que analizas los datos:

Código PHP:
// Obtengo la extensión del archivo en minúsculas y sin el punto
$partes split('\.'$nombre_archivo);
$extension strtolower($partes[count($partes)-1]);
//compruebo si las características del archivo son las que deseo
if($extension != 'mp3')
    echo 
"El tipo de archivo <b>$extension</b> es incorrecto, sólo se permiten archivos mp3";
else if(
$tamano_archivo 8000000)
    echo 
"Tu archivo pesa <b>$tamano_archivo</b> y el máximo permitido es de 8000000";
else { 
    if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $carpeta)){ 
        echo 
"El archivo ha sido cargado correctamente."
    }else{ 
        echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse."
    } 

De esta manera podrás analizar la extensión y el tamaño del archivo, además sabrás cuál es exactamente el error.
  #10 (permalink)  
Antiguo 13/08/2008, 12:11
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Respuesta: Cambiar script de upload de imagenes a upload mp3

Hola David el grande, eso ya lo he probado, lo que pasa es que en el foro no lo copie, si no que lo escribi yo y por eso lo escribi con ñ, no imprime nada, en cuanto a tu solucion Triby, me dice "El tipo de archivo es incorrecto, solo se permiten archivos mp3".
El archivo que intento subir en las pruebas es http://usuarios.lycos.es/jflog/upload/test.mp3, un archivo pequeño y en mp3, no lo entiendo.
__________________
Videos de Metal
  #11 (permalink)  
Antiguo 13/08/2008, 12:13
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Cambiar script de upload de imagenes a upload mp3

Pero si no imprime nada significa que la variable está vacía, o sea que no está tomando el tamaño del archivo. No creo, no puede ser, algo debe estar mal y por eso no imprime el valor de la variable.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 13/08/2008, 12:29
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Respuesta: Cambiar script de upload de imagenes a upload mp3

Es lo mismo que con el codigo que puso Triby no? El en el echo puso "El tipo de archivo <b>$extension</b> es incorrecto, sólo se permiten archivos mp3" Y sin embrago a mi me imprime "El tipo de archivo es incorrecto, solo se permiten archivos mp3" falta la variable extension no? o me estoy equivocando
__________________
Videos de Metal
  #13 (permalink)  
Antiguo 13/08/2008, 12:30
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Cambiar script de upload de imagenes a upload mp3

Es que en su código está tomando la variable extensión del nombre del archivo, que no sé en qué formato viene, habrá que revisarlo. ¿Y si lo cambias por $tipo_archivo qué sucede?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #14 (permalink)  
Antiguo 13/08/2008, 12:34
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Respuesta: Cambiar script de upload de imagenes a upload mp3

Voy a probar
__________________
Videos de Metal
  #15 (permalink)  
Antiguo 13/08/2008, 12:38
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Respuesta: Cambiar script de upload de imagenes a upload mp3

Tampoco sucede nada, nisiquiera con los dos a la vez, creo quie no imprime ninguna variable, por que la variable "$grupo" que es la carpeta donde subiran los archivos tampoco la muestra. Podeis ver el original funcionando si os meteis en http://usuarios.lycos.es/jflog/upload/grupo.html y completais los pasos que pone solo que este solo funciona con imagenes y no se por que.
__________________
Videos de Metal

Última edición por juanitTo; 13/08/2008 a las 13:44
  #16 (permalink)  
Antiguo 13/08/2008, 15:10
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Cambiar script de upload de imagenes a upload mp3

Verifica si hubo un error al tratar de subir el archivo primero:

Código PHP:
echo $_FILES['userfile']['error'] ; 
$_FILES es lo mismo que $HTTP_POST_FILES, pero este es para versiones de PHP anteriores a la 4.1.0 aunque todavía funciona en versiones recientes.
  #17 (permalink)  
Antiguo 14/08/2008, 06:00
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Respuesta: Cambiar script de upload de imagenes a upload mp3

No pasa nada Triby, me sale el mismo error "la extension es incorrecta..." pero no muestra nada mas, pero acabo de hacer otra prueba que me mosquea un poco:
Código PHP:
<? 
$nombre_archivo 
$HTTP_POST_FILES['userfile']['name']; 
$carpeta "$grupo/$nombre_archivo"
$tipo_archivo $HTTP_POST_FILES['userfile']['type']; 
$tamano_archivo $HTTP_POST_FILES['userfile']['size']; 
//compruebo si las características del archivo son las que deseo 
if (!((strpos($tipo_archivo"gif") || strpos($tipo_archivo"[B]mp3[/B]")) && ($tamano_archivo 100000))) { 
    echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos de imagen<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>"
}else{ 
    if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $carpeta)){ 
        echo 
"El archivo ha sido cargado correctamente."
    }else{ 
        echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse."
    } 

?>
Es el archivo original pero en vez de jpeg he puesto mp3, resulta que los gif, si que los sube bien, pero los mp3 no, ¿Por que?
__________________
Videos de Metal
  #18 (permalink)  
Antiguo 14/08/2008, 08:16
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cambiar script de upload de imagenes a upload mp3

Pues trata de imprimir el valor de la variable $tipo_archivo en los dos casos, en el caso del gif y en el caso del mp3 y verifica los resultados.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #19 (permalink)  
Antiguo 14/08/2008, 08:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Cambiar script de upload de imagenes a upload mp3

Hola:

Los tipos de imagen obtenidos con el array files son los "mime", y me parece que no existe el "gif" sino el "image/gif"... y para los mp3 seguro que no es justamente "mp3"... debería ser algo así como "audio/mp3" (rectifico... "audio/mpeg")... buscando en google mientras respondía este mensaje encontré esta página: MIME Type

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #20 (permalink)  
Antiguo 14/08/2008, 09:16
Avatar de juanitTo  
Fecha de Ingreso: enero-2007
Mensajes: 406
Antigüedad: 17 años, 3 meses
Puntos: 5
Respuesta: Cambiar script de upload de imagenes a upload mp3

Bien, David el Grande he hecho lo que decias y cuando subo un gif me imprime image/gif (como dice cariatos), y cuando subo el mp3 me imprime audio/mpeg (como dice caricatos) .
Asi que problema resuelto, me quito el sombrero, señor caricatos , muchisimas gracias a los 3 por vuestro tiempo y dedicacion.
Saludos!
__________________
Videos de Metal
  #21 (permalink)  
Antiguo 14/08/2008, 09:20
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Cambiar script de upload de imagenes a upload mp3

Ya veo, en el caso del gif funciona porque estás usando strpos con lo que buscará la primera aparición de gif dentro de la cadena. No obstante como en la cadena audio/mpeg no hay mp3 no pasa de la condición. En ese caso no necesitarás usar strpos, puedes hacer la comparación directamente.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #22 (permalink)  
Antiguo 14/08/2008, 13:13
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Cambiar script de upload de imagenes a upload mp3

Me da gusto que lo hayas solucionado y me extraña que no haya funcionado con la extensión, pero bueno... queda como cosa para revisar posteriormente.
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 04:28.