Jump to content
Sign in to follow this  
Jony

ANSWERED Descargar Imagenes servidor

Recommended Posts

Quisiera descargar todas las imagenes que tengo en un servidor, es decir tengo la carpetta fotos2020 en el servidor, con 25 fotos. Quisera hacer tipo un album que vallan pasando las fotos. 

Tengo foto01, foto02, foto03...

Cuando entro a la escena que se vea foto01, al darle boton siguiente que se vea foto02, y asi sucesivamente.

COmo podria hacerlo?

Un saludo

Share this post


Link to post
Share on other sites

Qué tipo de servidor es? Un Firebase? Uno que soporta PHP?  Si soporta PHP,  empezaría por crear un servicio REST en JSON  que te devolviera 1, n o un rango. Luego llamaría a esa API REST desde Unity. A partir de ahí ya mostrarlas con un ScrollRect.

 

Share this post


Link to post
Share on other sites

Es un hosting en Ionos. No se si sera lo mejor o que... Me recomiendas alguna otra forma de hacerlo?

 

Un saludo

A ver yo hacer una peticion con PHP se hacerla. Y descargala y mostrarla, lo que no veo claro es si dentro de una carpeta en el hosting hay 15 fotos por decir algo, que se descarguen o que se muestren, una a una, como si fuese un array. Peor para hacer solo una peticion mando la direccion de la imagen, lo que quiero es descargar o ir mostrando una a una todas las que hayan, como si fuese un array.

 

Un saludo

Share this post


Link to post
Share on other sites

Si las URL's son públicas, pues más fácil. Para descargar lo que sea, incluido imágenes, está el API UnityWWebRequest:

https://docs.unity3d.com/es/530/Manual/UnityWebRequest.html

Una vez las tengas en un array de Image, mírate el componente ScrollRect:

https://docs.unity3d.com/2018.3/Documentation/ScriptReference/UI.ScrollRect.html

O el GridLayout mejor si son en plan galería:

https://docs.unity3d.com/ScriptReference/GridLayout.html

Edited by iRobb

Share this post


Link to post
Share on other sites

Si, si la conozco. Pero mi pregunta es: con Unitywebrequest debo mandarle la url de la imagen una a una o puedo decirle de la carpeta fotos2020 quiero todas? 

 

Es que no se si me explico bien.

 

Un saludo

Share this post


Link to post
Share on other sites

Hola @Jony existen varios modos de realizar esto, pero por lo general se trata de realizar mediante un API REST para que todas tus consultas sean genéricas.

Con API REST tu consulta sería tal que "https://host.com/api/fotos/2020/[ID DE LA FOTO]". esto te retorna un objeto  llamado "PAGINADOR" que contiene algunos datos importante como el ID de la siguiente y anterior foto y la URL de la IMAGEN La URL de la imagen seria tal que "https://host.com/api/fotos/2020/[ID DE LA FOTO]/source"

Esto se puede lograr con NODE.JS o en PHP con Laravel. 
En lo personal uso PHP y no me gusta utilizar librerías, de hecho tengo una libreria propia que uso para muchos proyectos y funciona como PSEUDO API REST, esto debido a que no me parece del todo buena idea los métodos extras al GET y POST.

¿Cómo puedes realizar esto con un simple PHP?
Puede crear un archivo index.php en el directorio de las fotos donde obtengas todos los archivos y lo agregue a un arreglo y te lo retorna como JSON_ENCODE

<?php

$files["files"] = new array();
foreach (new DirectoryIterator('./') as $fileInfo) {
    if($fileInfo->isDot()) continue;
    $files["files"][] = $fileInfo->getFilename();
}

echo json_encode($files);

Luego desde Unity recibes el objeto JSON y lo conviertes con JsonUtylitis a la clase mapeada para este objeto.

string json = WebRequest.Get("host/carpeta/fotos");
string[] files = JsonUtility.ToObject<PhotosCollectionJSON>(json).files;

[Serializable]
public class PhotosCollectionJSON
{
  	public string[] files;
}

La variable FILES debería contener todas las URL de las imágenes que se encuentran dentro de la carpeta.

Share this post


Link to post
Share on other sites

Vale, lo probare. Una vez tenga las variables en el array files ya puedo mostrarlas. De momento con esa informacion creo que podria empezar a intentarlo. Os mantendre informados... jejejeje

 

Gracias

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...