Foros del Web » Programando para Internet » PHP »

Error al insertar archivos

Estas en el tema de Error al insertar archivos en el foro de PHP en Foros del Web. Hola, He utilizado el manual que hizo Cluster sobre como subir imágenes, pero en mi caso quiero subir archivos mp3. Al utilizar la función insertar.php ...
  #1 (permalink)  
Antiguo 20/05/2004, 03:30
k2k
 
Fecha de Ingreso: abril-2004
Mensajes: 21
Antigüedad: 20 años
Puntos: 0
Error al insertar archivos

Hola,

He utilizado el manual que hizo Cluster sobre como subir imágenes, pero en mi caso quiero subir archivos mp3.

Al utilizar la función insertar.php me da error en las funciones:

$contingut = addslashes(fread(fopen($nom_temporal, "rb"), filesize($nom_temporal)));

Los errores son los siguientes:
Warning: fopen("", "rb") - No error in c:\easyserv\www\lib\insertar.php on line 18

Warning: fread(): supplied argument is not a valid File-Handle resource in c:\easyserv\www\lib\insertar.php on line 18

He mirado el manual de php y no me aclaro. Que es lo que está mal?

Gracias
  #2 (permalink)  
Antiguo 20/05/2004, 06:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si te fijas en el error:

Warning: fopen("", "rb") -


$nom_temporal según el error no está tomando ningún valor ..

Hazte un echo a $nom_temporal y verifica si obtienes el dato correcto (nombre del archivo temporal)

Y . ojo: El tutorial usa los arrays superglobales $_FILES entre otros . .eso sólo es válido para PHP 4.1.0 en adelante .. revisa que versión de PHP usas tu concretamente ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 21/05/2004, 01:34
k2k
 
Fecha de Ingreso: abril-2004
Mensajes: 21
Antigüedad: 20 años
Puntos: 0
Por lo de la versión de php no creo que haya problema pq utilizo la 4.2.2.

He estado probando lo del echo nom_temporal con diferentes archivos y he observado lo siguiente:
Insertando un archivo de 900 kbytes no me da error. Pero insertando por ejemplo uno de 1500 o 2000 a veces me dan los errores comentados:

Warning: fopen("", "rb") - No error in c:\easyserv\www\lib\insertar.php on line 19

Warning: fread(): supplied argument is not a valid File-Handle resource in c:\easyserv\www\lib\insertar.php on line 19

Warning: Cannot add header information - headers already sent by (output started at c:\easyserv\www\lib\insertar.php:19) in c:\easyserv\www\lib\insertar.php on line 28

o a veces tb me sale la opción del condicional para informar de que no se ha podido insertar:

mysql_query($consulta_insertar,$conexio) or die("No es pot insertar les dades en la base de dades.");

Lo del echo, me escribe la dirección cuando se inserta bien el archivo y cuando me informa de que no puede insertarlo, cuando da los warnings no.

En el tutorial ponías que el archivo_binario era blob para archivos pequeños y entonces lo definí como longblob.

Que puede ser?

Gracias
  #4 (permalink)  
Antiguo 21/05/2004, 04:24
k2k
 
Fecha de Ingreso: abril-2004
Mensajes: 21
Antigüedad: 20 años
Puntos: 0
Otra qüestión más.

Estas funciones son parte de un aplicativo que quiero hacer para una radio a la carta.

Los usuarios solo tendrán visión de un listado de canciones que yo debo haber podido agregar. Como por ahora no puedo adelantar sobre el punto de agregar, hasta que no lo solucione quiero tratar otro tema del aplicativo.

Como puedo hacer que el listado de canciones que ven los usuarios, que eso ya lo he podido visionar, tenga en el apartado de la tabla que pone el nombre de la canción un link y si le hago un click se empiece a reproducir en su ordenador.

Gracias
  #5 (permalink)  
Antiguo 21/05/2004, 14:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. PHP tiene limitaciones en cuanto al tamaño de archivo que puedes subir (ese detalle de tus pruebas no lo comentastes en principio ¬¬).

php.ini (o ver en phpinfo())
upload_max_filesize
post_max_size

También si el archivo es grande puede que te salte PHP con un error de tiempo de ejecución exedido ... Eso lo podrías controlar de los 30 segundos por defecto que se le dá max. a una ejecución de un script en: set_time_limit()

Otras restricciones sobre el tamaño del archivo las dá tu servidor HTTP que uses (Apache por lo menos tiene otra directiva más sobre el "request" máximo que se puede hacer) y luego volviendo a PHP .. cada script se le asigna una cantidad de memoría máximo (8Megabytes está por defecto) ..

Todo esto lo detalla perfectamente el manual oficial de PHP en el apartado de "Upload" de archivos que en el mismo tutorial que vistes dejé el link (creo) hacia php.net.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 24/05/2004, 02:29
k2k
 
Fecha de Ingreso: abril-2004
Mensajes: 21
Antigüedad: 20 años
Puntos: 0
He estado mirando los archivos de configuración upload_max_file, post_max_size, memory_limit y los he puesto a 20 M, luego he subido el max_execution_time a 60 segundos. Pero me siguen dando los anteriores errores que comenté.

El servidor que utilizo es el Apache 1.3.27 que viene en el instalador automatico FoxServ de php, apache y mysql. He estado mirando y no he sabido encontrar la directiva para configurar el tamaño máximo para subir. Cual es?

Gracias
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 12:06.