Je développe un projet Google App Engine. En fait, je veux enregistrer les images dans le blobstore, après cela, je récupère la clé blob et l'URL de service, et je les stocke dans une entité Demand dans Datastore.Insérer une image dans Blobstore?
Mon fichier jsp est:
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@ page import="com.google.appengine.api.blobstore.*"%>
<%@ page import="com.Upload"%>
<%
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="css/style.css" rel="stylesheet" media="screen">
</head>
<body>
<div class="container-narrow">
<div class="masthead">
<ul class="nav nav-pills pull-right">
<li class="active"><a href="/">Accueil</a></li>
<li><a href="#upload">Upload</a></li>
</ul>
<h3 class="muted">Cloud Uploader</h3>
</div>
<hr />
<form
action="<%= blobstoreService.createUploadUrl("/") %>"
method="post" enctype="multipart/form-data">
<p>
<label>Fichier à envoyer : <input type="file" name="uploadedFile" /></label>
</p>
<div class="form-actions">
<input type="submit" class="btn" />
</div>
</form>
</div>
<script src="http://code.jquery.com/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
Mon servlet qui gère la demande:
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException, ServletException {
this.getServletContext().getRequestDispatcher("/UploadForm.jsp").forward(req, resp);}
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException, ServletException {
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
ImagesService imagesService = ImagesServiceFactory.getImagesService();
Map<String, List<BlobKey>> blobs = blobstoreService.getUploads(req);
System.out.println(blobKeys.get(0).toString());//No result
DataManager dat=new DataManager(); // this class contains DemandCreate method
String personPhotoServingUrl= imagesService.getServingUrl(ServingUrlOptions.Builder.withBlobKey(blobKeys.get(0)));
String personPhotoBlobKey=blobKeys.get(0).toString();
dat.DemandCreate("id3", "", "", "", "", 1, "", "", 3031, "", "", personPhotoBlobKey, personPhotoServingUrl);// this method enables user to store data in Datasotre using Objectify..
resp.sendRedirect("/");}
Le problème est quand je télécharge une image, il fonctionne très bien, le blob et l'image se trouve dans l'entité BlobInfo mais aucun résultat ajouté dans mon entité Demand (aucune nouvelle insertion dans cette entité). J'ai essayé d'imprimer la clé blob de l'image insérée:
System.out.println(blobKeys.get(0).toString());//No result
Mais, aucun résultat. Merci pour votre aide.
J'ai essayé ce que vous avez dit mais malheureusement pas de résultat aussi. – GenIce