Foros del Web » Programando para Internet » PHP »

Comprobando tamaño de un archivo antes de generarlo

Estas en el tema de Comprobando tamaño de un archivo antes de generarlo en el foro de PHP en Foros del Web. Hola, os explico lo que quiero hacer. Recibo una cadena de texto por POST de un textarea y la guardo en una variable string, esa ...
  #1 (permalink)  
Antiguo 10/11/2009, 21:52
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 2 meses
Puntos: 2
Comprobando tamaño de un archivo antes de generarlo

Hola, os explico lo que quiero hacer.

Recibo una cadena de texto por POST de un textarea y la guardo en una variable string, esa misma cadena, la guardo en un archivo de texto plano para luego recuperar dichos datos.

El problema está en que si un usuario introduce una cadena muy larga, de forma mal intencionada y guardo el fichero, podría dejar sin espacio en el servidor para el resto de usuarios.

Me gustaría, si es posible, que me orientaran en la manera de hacer frente a esto, ya que no es un archivo que guarde, si no una string que recibo y genero el archivo.

He pensado en crear un directorio temporal y leer con filesize el tamaño antes de cambiarlo a la ubicación correcta pero igualmente me parece demasiado peligroso y poco eficiente.

El tamaño de la cadena creo que no se puede medir con strlen(), por el tema de los caracteres multibyte.

Un saludo y gracias.

Última edición por alca87; 10/11/2009 a las 22:22 Razón: Título que puede provocar confusión
  #2 (permalink)  
Antiguo 10/11/2009, 22:07
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Comprobando tamaño de un archivo antes de guardarlo

En este Link te explican una manera generica de como comprobar el tamanio del archivo.

http://www.webtaller.com/construccio...chivos-php.php
  #3 (permalink)  
Antiguo 10/11/2009, 22:19
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Comprobando tamaño de un archivo antes de guardarlo

Hola, gracias por la respuesta, pero no es lo que estaba buscando.

No debí dejarlo claro en el anterior mensaje. No subo un archivo, lo genero a partir de un string.

Lo que recibo del formulario es una cadena de texto, no un archivo.


Un saludo
  #4 (permalink)  
Antiguo 10/11/2009, 22:22
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Comprobando tamaño de un archivo antes de generarlo

ok existe una funcion para comprobar la longitud de un string

es strlen($variable)
te devuelve la longitud , quisas con eso pueda comprobar

Código php:
Ver original
  1. if(strlen($variable ))>1000){
  2. .....
  3. }
  #5 (permalink)  
Antiguo 11/11/2009, 06:30
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Comprobando tamaño de un archivo antes de generarlo

Gracias de nuevo por tu respuesta, pero como dije en el primer post:
Cita:
El tamaño de la cadena creo que no se puede medir con strlen(), por el tema de los caracteres multibyte.
No se puede conocer el tamaño de una cadena en bytes contando sus caracteres, ya que hay caracteres que valen mas de un byte, como por ejemplo el retorno de carro \n.

Un saludo.

Última edición por alca87; 11/11/2009 a las 06:31 Razón: Un saludo duplicado
  #6 (permalink)  
Antiguo 11/11/2009, 06:40
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Comprobando tamaño de un archivo antes de generarlo

En dado caso lo que tienes que limpiar el testo con expreciones regulares

Por que el usuario tiene que poner los \n
No entiendo.
  #7 (permalink)  
Antiguo 11/11/2009, 07:31
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Comprobando tamaño de un archivo antes de generarlo

Jeje, te explico, no es tan facil como a primera vista parece. Te pego un trozo de la wikipedia en referencia al UTF-8, para que entiendas que no se pueden eliminar todos los caracteres que ocupen mas de 1byte:

Cita:
* Caracteres codificados con un byte: Los incluidos en US-ASCII, un total de 128 caracteres.
* Caracteres codificados con dos bytes: Un total de 1920 caracteres. Este grupo incluye los caracteres latinos más signos diacríticos, y los alfabetos griego, cirílico, copto, armenio, hebreo, árabe, siríaco y Thaana entre otros.
* Caracteres codificados con tres bytes: Caracteres del Plano básico multilingüe de Unicode, que unido al grupo anterior, incluye la práctica totalidad de caracteres de uso común, entre ellos los caracteres del grupo CJK: Chino, japonés y coreano.
* Caracteres codificados con cuatro bytes: Caracteres del plano suplementario multilingüe. Símbolos matemáticos y alfabetos clásicos para uso principalmente académico: Lineal B silábico e ideográfico, alfabeto persa, fenicio... Y el plano suplementario ideográfico: caracteres Han de uso poco común.
No puedo poner links, pero lo encontrarás buscando utf-8 en la wikipedia española. Como verás, hay una cantidad bastante considerable de caracteres de mas de un byte. Un saludo.
  #8 (permalink)  
Antiguo 11/11/2009, 14:51
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Comprobando tamaño de un archivo antes de generarlo

Subo el post para ver si alguien puede darme una respuesta. Perdón por ser pesado.

Un saludo.
  #9 (permalink)  
Antiguo 11/11/2009, 19:27
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Comprobando tamaño de un archivo antes de generarlo

Vuelvo a subir, última vez que lo intento...
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 17:10.