Script PHP para subir y renombrar imágenes automáticamente

  • Autor Autor Gridalo
  • Fecha de inicio Fecha de inicio
Gridalo

Gridalo

Kappa
Verificado por Whatsapp
Hola Amigos.

Necesito algo de luz que yo no soy experto en php (es mas me defiendo lo justito)

LLevo mucho tiempo necesitando un script que haga lo siguiente:

1º subir por formulario una imagen que se llame por ejemplo foto.jpg
2º que se reenombre a 51881a.jpg (los numeros iran sumando en funcion de las imagenes que se suban pero debe terminar en a.jpg)
3º que haga 3 copias de diferentes tamaños 51881a.jpg 51881b.jpg 51881c.jpg (cada una con un tamaño difernte)
4º que suba su ubicacion a una base base de datos

Alguien sabe por donde empezar con este "lio" tan grande?

Un saludo!
 
Utiliza Google y busca cosas como "upload image and resize php".

Ya sabes el resto...
 
Aca tenés para subir archivos → Enlace eliminado
 
GPL es la licencia del script.
Saludos.
 
muchas gracias a todos! me sirvio un monton 😉

Un saludo!
 
Estimado, creo que lo que intentas hacer no es lo mejor.

A pesar de que entiendo que tienes muy clara tu idea, almacenar cada una de esas rutas en una BD no es lo mejor que se puede hacer.

La única forma (aún así no es la correcta) sería almacenar solo 51881 en la base de datos y solo en la condicion que lo quieras diferencia concatenarlo con a.jpg, b.jpg y c.jpg.

Lo que te recomiendo es separar las imágenes por directorio

a/51881.jpg
b/51881.jpg
c/51881.jpg

y la diferenciación te la realizaría el directorio

¿Por qué? para mostrar la imagen, php debe recorrer todo el directorio en busca de ella y por cada imagen que buscas, existen 3 de la misma antecediendola.

En un escenario de 1.000.000 de imagenes con 3 de cada tipo (3.000.000) si la imagen que quieres mostrar se encuentra en la posicion 1600, la busqueda de ella se demorará como minimo 1599*3

Además, en la base de datos, solo guardas 51881.jpg y se realizará sin ningún tipo de problema.

Con respecto al nombre, la incrementación en ciertos puntos trare problemas ya que si lo manejas por BD debes consultar cuál fué la última y eso también ocupa recursos no nativos. Para ello te recomiendo algo así....

PHP:
$extension = pathinfo($_FILES['Filedata']['name']);
$extension = ".".$extension['extension'];
$info = @getimagesize($_FILES['Filedata']['tmp_name']);
$var_rand=rand(10000,999999)* rand(10000,999999);
$nombre_tem=md5($var_rand.$_FILES['Filedata']['name']);
$nombre=$nombre_tem.$extension;
move_uploaded_file($_FILES['Filedata']['tmp_name'], 'imagenes/a/'.$nombre);

Básicamente, generas un random y lo concatenas con el nombre de la imagen y todo eso lo transformas a md5, otra solución sea que en vez de un random (aquí va el SEO) sea el nombre de la imagen-tiempo lo que te generaría algo asi.... vacaciones_en_orlando-5982849.jpg y tienes la segunda solución.

Saludos.
 
es que la imagen va en 3 dimensiones diferentes y lo necesito como comento por que es asi como lo tiene mi script actual (se que no es lo mejor pero por desgracia es lo que necesito)
 
Aps, solo sugeria.

Suerte
 

Temas similares

Atrás
Arriba