2011-04-21 47 views
6

Actualmente estoy usando un simple script de carga $ _FILES para cargar imágenes desde mi aplicación de iPhone al servidor. Sin embargo, los tamaños de imagen son grandes y me gustaría cambiar su tamaño antes de enviar la imagen al servidor.convertir imagen de blob a archivo en php

La desventaja de esto, sin embargo, es que la función de cambio de tamaño los convierte en imágenes "blob" (que, como yo lo entiendo, es una forma de almacenar la imagen en la base de datos). Prefiero guardar los archivos directamente en el sistema de archivos. ¿Cómo voy a convertir un blob de nuevo en $ _FILE o encontrar un script que guarde las imágenes de blob en el disco?

Gracias!

Respuesta

16

El BLOB es la imagen binaria. Puede escribir esa imagen en su sistema de archivos una vez que esté en su servidor. Así que si su imagen está en el $ my_blob variable, se haría algo así

file_put_contents('/path/to/new/file_name', $my_blob); 

y hay que ir.

Es posible que desee guardar primero el archivo en una ubicación tmp, y luego hacer algunas comprobaciones antes de moverlo a una ubicación final (con la función PHPname rename()).

Por cierto, ¿por qué no guardar el BLOB en la base de datos? Esa es una forma legítima de manejar archivos actualmente, para eso es el tipo de datos BLOB MySQL, después de todo.

2

Intenta simplemente escribirlo en un archivo con un mimetype image/[fill-in-the-blank]. O tal vez imagecreatefromstring funcionará. (NO estoy seguro de ninguno de estos)

O puede encontrar otra forma de cambiar el tamaño de las imágenes.