Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用url在Blobstore中插入Blob_Java_Google App Engine_Blobstore - Fatal编程技术网

Java 使用url在Blobstore中插入Blob

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

嗨,我是谷歌应用程序引擎的新手。我经历了这一切

我成功地运行了这些示例项目。在此过程中,我必须上载一个文件,然后它返回相同的文件。但我已使用此url提供了一个url,我必须将文件上载到blobstore。然后再次下载。 任何人都可以帮助如何通过url上传文件。 下面是index.jsp文件的代码

<%@ 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());
        }
    }
}