Java 谷歌应用引擎Blobstore图片

Java 谷歌应用引擎Blobstore图片,java,google-app-engine,jsp,servlets,blobstore,Java,Google App Engine,Jsp,Servlets,Blobstore,我试图创建一个简单的web应用程序,使用Blobstore上传多个图像。我已成功地将图像上传到Blobstore。但是当图像被上传时,用于上传的servlet不会重定向到我试图重定向到的任何页面。它只是显示一个带有URL的空白页面,如:myapplicationId.appstore.com/\u ah/upload/…(keyvalue) 我无法将名为Upload的servlet重定向更改为另一个页面。我也试着为这些图像服务,但是做不到 有人能给我引路吗 我使用谷歌的Java标准代码上传图像

我试图创建一个简单的web应用程序,使用Blobstore上传多个图像。我已成功地将图像上传到Blobstore。但是当图像被上传时,用于上传的servlet不会重定向到我试图重定向到的任何页面。它只是显示一个带有URL的空白页面,如:myapplicationId.appstore.com/\u ah/upload/…(keyvalue)

我无法将名为Upload的servlet重定向更改为另一个页面。我也试着为这些图像服务,但是做不到

有人能给我引路吗

我使用谷歌的Java标准代码上传图像

我的JSP是:

<%@ page import="com.google.appengine.api.blobstore.BlobstoreServiceFactory" %>
<%@ page import="com.google.appengine.api.blobstore.BlobstoreService" %>
 <script>
<%
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();

%>

</script>
<html>
<head>
<title>Show My Picture(s)</title>
</head>
<body>

<h1>Show My Picture(s)</h1>
<hr/>
<h2>Upload picture(s)</h2>
<form action="<%= blobstoreService.createUploadUrl("/upload") %>" method="post" enctype="multipart/form-data">
Upload File(s) :
<input type="text" name="filename"/>
<input type="file" name="myPics" multiple="multiple"/>
<input type="submit" value="Upload Picture"/>
</form>
</html>

显示我的图片
显示我的图片

上传图片 上载文件:
我的上传Servlet:

package photos;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.Map;
import java.util.logging.Logger;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import photos.Upload;

import com.google.appengine.api.blobstore.BlobKey;
import com.google.appengine.api.blobstore.BlobstoreService;
import com.google.appengine.api.blobstore.BlobstoreServiceFactory;
import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.KeyFactory;
import com.google.appengine.api.images.ImagesService;
import com.google.appengine.api.images.ImagesServiceFactory;
import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;

/**
 * Servlet implementation class Upload
 */
@WebServlet("/Upload")
public class Upload extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    private final static Logger _logger = Logger.getLogger(Upload.class.getName());
    private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();

    public void doPost(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {

            try{
            Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req);
            BlobKey blobKey = blobs.get("myPics");


            if (blobKey == null) {
                res.sendRedirect("/");
            }
            else {
                res.sendRedirect("/upload?blob-key="+blobKey.getKeyString()+"blobSize="+blobs.size());
              }
            }catch(Exception e){
                e.printStackTrace();
                System.out.println("Document failed to POST, redirecting back to upload.");
                res.sendRedirect("/index.jsp");
            }
    }

    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {

        String uploadedImageKey = req.getParameter("blob-key");
        PrintWriter out = resp.getWriter();
        resp.setHeader("Content-Type", "text/html");
        resp.sendRedirect("/viewPics.jsp");
        //out.println(req.getParameter("blobSize")+" images have been successfully uploaded");



    }
}
套装照片;
导入java.io.IOException;
导入java.io.PrintWriter;
导入java.util.Date;
导入java.util.Map;
导入java.util.logging.Logger;
导入javax.servlet.ServletException;
导入javax.servlet.annotation.WebServlet;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入照片。上传;
导入com.google.appengine.api.blobstore.BlobKey;
导入com.google.appengine.api.blobstore.BlobstoreService;
导入com.google.appengine.api.blobstore.BlobstoreServiceFactory;
导入com.google.appengine.api.datastore.DatastoreService;
导入com.google.appengine.api.datastore.DatastoreServiceFactory;
导入com.google.appengine.api.datastore.Entity;
导入com.google.appengine.api.datastore.KeyFactory;
导入com.google.appengine.api.images.ImagesService;
导入com.google.appengine.api.images.images服务工厂;
导入com.google.appengine.api.users.User;
导入com.google.appengine.api.users.UserService;
导入com.google.appengine.api.users.UserServiceFactory;
/**
*Servlet实现类上传
*/
@WebServlet(“/Upload”)
公共类上载扩展了HttpServlet{
私有静态最终长serialVersionUID=1L;
/**
*@参见HttpServlet#HttpServlet()
*/
私有最终静态记录器_Logger=Logger.getLogger(Upload.class.getName());
私有BlobstoreService BlobstoreService=BlobstoreServiceFactory.getBlobstoreService();
public void doPost(HttpServletRequest-req、HttpServletResponse-res)
抛出ServletException、IOException{
试一试{
Map blobs=blobstoreService.getUploadedBlobs(req);
BlobKey-BlobKey=blobs.get(“myPics”);
if(blobKey==null){
res.sendRedirect(“/”);
}
否则{
res.sendRedirect(“/upload?blob key=“+blobKey.getKeyString()+”blobSize=“+blobs.size());
}
}捕获(例外e){
e、 printStackTrace();
System.out.println(“文档未能发布,重定向回上载”);
res.sendRedirect(“/index.jsp”);
}
}
公共无效数据集(HttpServletRequest请求、HttpServletResponse响应)
抛出IOException{
字符串uploadedImageKey=req.getParameter(“blob键”);
PrintWriter out=resp.getWriter();
相应的setHeader(“内容类型”、“文本/html”);
响应sendRedirect(“/viewPics.jsp”);
//out.println(req.getParameter(“blobSize”)+“图像已成功上载”);
}
}

我哪里出错了?

我想自助是最好的帮助。我解决了这个问题。它只是在createUploadUrl中将上载更改为上载