【发布时间】:2014-10-21 11:42:25
【问题描述】:
我正在开发一个 Google App Engine 项目。事实上,我想将图像保存在 blobstore 中, 之后,我恢复 blob 密钥和服务 url,并将它们存储在 Datastore 中的 Demand 实体中。
我的jsp文件是:
<%@ 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>
我处理请求的 servlet:
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("/");}
问题是当我上传图像时,它工作正常,blob 和图像在 BlobInfo 实体中找到,但在我的 Demand 实体中没有添加结果(在此实体中没有新插入)。 我试图打印插入图像的 blob 键:
System.out.println(blobKeys.get(0).toString());//No result
但是,没有结果。 感谢您的帮助。
【问题讨论】:
标签: java google-app-engine jakarta-ee blobstore