我正在创建一个需要图像上传功能的应用程序。我一直在关注本教程和App Engine 文档。
图片上传正确,服务器重定向到FileUpload HttpServlet的doPost函数。我可以从请求中读取 blob 密钥并将其保存在数据存储中。
我的问题是将响应发送回客户端。我所看到的一切都指向使用 response.sendRedirect 函数,但这还没有成功。
public class FileUpload extends HttpServlet
{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
Map<String, List<BlobKey>> blobs = blobstoreService.getUploads(request);
BlobKey blobKey = blobs.get("picFileUpload").get(0);
ShipHull shipHull = new ShipHull();
shipHull.setShipHullName(request.getParameter("hullNameText"));
shipHull.setShipImageURL("/shipbuilder/blobService?blob-key=" + blobKey.getKeyString());
PersistenceManager pm = PMF.get().getPersistenceManager();
try
{
pm.makePersistent(shipHull);
}
catch (Exception e)
{
String hi = "hello";
}
finally
{
pm.close();
}
Boolean test = response.isCommitted();
response.sendRedirect("/shipbuilder/FileUpload?gwt.codesvr=127.0.0.1:9997&shipHullName=" + shipHull.getShipHullName());
test = response.isCommitted();
return;
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException
{
String id = req.getParameter("shipHullName");
resp.setHeader("Content-Type", "text/html");
resp.getWriter().println(id);
}
}
我正在尝试将客户端重定向回同一个 servlet 中的 doGet。我已经尝试过这个并且没有gwt.codesvr=127.0.0.1:9997
and theshipHullName=" + shipHull.getShipHullName())
但是 doGet 函数永远不会到达。我也试过了https://www.google.com
。
这一切都在开发服务器上完成(尚未在生产服务器上尝试过)。
如果您有任何其他返回图像保存状态的方法(例如,如果文件名已被使用),我不介意尝试不同的方法。
谢谢!