studio software que programar programacion programa play para paquete nombre necesito moviles lenguajes lenguaje google developer descargar desarrollo crear aplicaciones java google-app-engine image-uploading

software - Cómo cargar y almacenar una imagen con el motor de la aplicación de google(java)



que necesito para programar en android (3)

El enlace que proporcionó "¿Cómo manejo las cargas de archivos en mi aplicación?" explica cómo puedes subir la imagen.

Para alojar las imágenes, debe usar el servicio de almacén de datos para almacenar y servir imágenes junto con sus otros datos.

Aquí hay un código de muestra. Se trata de un boceto, de cómo puede tener su propia entidad (negocio, usuario, etc.) con un campo para una imagen. Ignore todo el manejo y recuperación de errores para simplificar el código.

Declarando su entidad con la imagen. Puede imaginar tener otros campos, por ejemplo, etiquetas, ubicación, etc.

@Entity public class MyImage { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id; @Persistent private String name; @Persistent Blob image; public MyImage() { } public MyImage(String name, Blob image) { this.name = name; this.image = image; } // JPA getters and setters and empty contructor // ... public Blob getImage() { return image; } public void setImage(Blob image) { this.image = image; } }

Luego, cuando empiece a aceptar imágenes (tenga cuidado con los casos en los que ya se ha cargado una imagen con el mismo nombre además de las fallas típicas de carga de archivos). ServletFileUpload y IOUtils son clases que forman parte de la biblioteca de Apache Commons.

// Your upload handle would look like public void doPost(HttpServletRequest req, HttpServletResponse res) { // Get the image representation ServletFileUpload upload = new ServletFileUpload(); FileItemIterator iter = upload.getItemIterator(req); FileItemStream imageItem = iter.next(); InputStream imgStream = imageItem.openStream(); // construct our entity objects Blob imageBlob = new Blob(IOUtils.toByteArray(imgStream)); MyImage myImage = new MyImage(imageItem.getName(), imageBlob); // persist image PersistenceManager pm = PMF.get().getPersistenceManager(); pm.makePersistent(myImage); pm.close(); // respond to query res.setContentType("text/plain"); res.getOutputStream().write("OK!".getBytes()); }

Y, finalmente, cuando quieres servir una imagen dado su nombre:

Blob imageFor(String name, HttpServletResponse res) { // find desired image PersistenceManager pm = PMF.get().getPersistenceManager(); Query query = pm.newQuery("select from MyImage " + "where name = nameParam " + "parameters String nameParam"); List<MyImage> results = (List<MyImage>)query.execute(name); Blob image = results.iterator().next().getImage(); // serve the first image res.setContentType("image/jpeg"); res.getOutputStream().write(image.getBytes()); }

Estoy buscando la forma más sencilla de cargar y almacenar una imagen (archivo) en el GAE (java). Google durante horas sin ningún resultado simple y claro ...: (

Encontrado este enlace .

Pero todavía no sé cómo almacenar una imagen y cómo recuperarla ... Estoy buscando un ejemplo de servlet simple ...


La forma más fácil de usar la URL de servicio de Google App Engine Blob Store (ahorra tiempo de instancia)

import com.google.appengine.api.files.FileService; import com.google.appengine.api.files.AppEngineFile; import com.google.appengine.api.files.FileWriteChannel; import com.google.appengine.api.blobstore.BlobKey; import com.google.appengine.api.images.ImagesServiceFactory; import com.google.appengine.api.images.ServingUrlOptions; ... // your data in byte[] format byte[] data = image.getData(); /** * MIME Type for * JPG use "image/jpeg" for PNG use "image/png" * PDF use "application/pdf" * see more: https://en.wikipedia.org/wiki/Internet_media_type */ String mimeType = "image/jpeg"; // save data to Google App Engine Blobstore FileService fileService = FileServiceFactory.getFileService(); AppEngineFile file = fileService.createNewBlobFile(mimeType); FileWriteChannel writeChannel = fileService.openWriteChannel(file, true); writeChannel.write(java.nio.ByteBuffer.wrap(data)); writeChannel.closeFinally(); // your blobKey to your data in Google App Engine BlobStore BlobKey blobKey = fileService.getBlobKey(file); // THANKS TO BLOBKEY YOU CAN GET FOR EXAMPLE SERVING URL FOR IMAGES // Get the image serving URL (in https:// format) String imageUrl = ImagesServiceFactory.getImagesService().getServingUrl( ServingUrlOptions.Builder.withBlobKey(blobKey ).secureUrl(true));


Use la API de blobstore :

La API de Blobstore permite que su aplicación sirva objetos de datos, llamados blobs , que son mucho más grandes que el tamaño permitido para objetos en el servicio de Datastore. Las blobs son útiles para servir archivos de gran tamaño, como archivos de video o de imagen, y para permitir a los usuarios cargar grandes archivos de datos. Los blobs se crean subiendo un archivo a través de una solicitud HTTP. Por lo general, sus aplicaciones harán esto al presentar un formulario con un campo de carga de archivo para el usuario. Cuando se envía el formulario, el almacén de blob crea un blob a partir del contenido del archivo y devuelve una referencia opaca al blob, llamada clave de blob , que luego puede usar para servir el blob. La aplicación puede servir el valor de blob completo en respuesta a una solicitud del usuario, o puede leer el valor directamente utilizando una interfaz similar a un archivo de transmisión ...