Java 使用url在Blobstore中插入Blob
嗨,我是谷歌应用程序引擎的新手。我经历了这一切 我成功地运行了这些示例项目。在此过程中,我必须上载一个文件,然后它返回相同的文件。但我已使用此url提供了一个url,我必须将文件上载到blobstore。然后再次下载。 任何人都可以帮助如何通过url上传文件。 下面是index.jsp文件的代码Java 使用url在Blobstore中插入Blob,java,google-app-engine,blobstore,Java,Google App Engine,Blobstore,嗨,我是谷歌应用程序引擎的新手。我经历了这一切 我成功地运行了这些示例项目。在此过程中,我必须上载一个文件,然后它返回相同的文件。但我已使用此url提供了一个url,我必须将文件上载到blobstore。然后再次下载。 任何人都可以帮助如何通过url上传文件。 下面是index.jsp文件的代码 <%@ page import="com.google.appengine.api.blobstore.BlobstoreServiceFactory" %> <%@ page imp
<%@ page import="com.google.appengine.api.blobstore.BlobstoreServiceFactory" %>
<%@ page import="com.google.appengine.api.blobstore.BlobstoreService" %>
<%
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
%>
<html>
<head>
<title>Upload Test</title>
</head>
<body>
<form action="<%= blobstoreService.createUploadUrl("/upload") %>" method="post" enctype="multipart/form-data">
<input type="text" name="foo">
<input type="file" name="myFile">
<input type="submit" value="Submit">
</form>
</body>
</html>
上传servlet代码在这里
package org.ritesh;
import java.io.IOException;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.appengine.api.blobstore.BlobKey;
import com.google.appengine.api.blobstore.BlobstoreService;
import com.google.appengine.api.blobstore.BlobstoreServiceFactory;
public class UploadServlet extends HttpServlet {
private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req);
BlobKey blobKey = blobs.get("myFile");
if (blobKey == null) {
res.sendRedirect("/");
} else {
res.sendRedirect("/serve?blob-key=" + blobKey.getKeyString());
}
}
}
package org.ritesh;
导入java.io.IOException;
导入java.util.Map;
导入javax.servlet.ServletException;
导入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;
公共类UploadServlet扩展了HttpServlet{
私有BlobstoreService BlobstoreService=BlobstoreServiceFactory.getBlobstoreService();
public void doPost(HttpServletRequest-req、HttpServletResponse-res)
抛出ServletException、IOException{
Map blobs=blobstoreService.getUploadedBlobs(req);
BlobKey-BlobKey=blobs.get(“myFile”);
if(blobKey==null){
res.sendRedirect(“/”);
}否则{
res.sendRedirect(“/service?blob key=“+blobKey.getKeyString());
}
}
}
它运行正常。请建议进行任何修改,以便通过url上传文件。如果您希望用户将文件发布到您自己的url,则需要使用写入blobstore 但是,如果可以的话,最好使用您已经使用的方法来处理上传。它允许上传更大的文件,而且很可能更高效,因为上传是由Google基础设施处理的,而不是应用程序的实例
package org.ritesh;
import java.io.IOException;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.appengine.api.blobstore.BlobKey;
import com.google.appengine.api.blobstore.BlobstoreService;
import com.google.appengine.api.blobstore.BlobstoreServiceFactory;
public class UploadServlet extends HttpServlet {
private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req);
BlobKey blobKey = blobs.get("myFile");
if (blobKey == null) {
res.sendRedirect("/");
} else {
res.sendRedirect("/serve?blob-key=" + blobKey.getKeyString());
}
}
}