0

Google App Engine の REST Web サービス (Jersey を使用) に画像をアップロードしようとしています。

これは私の方法です:

@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadImage(@Context HttpServletRequest request){
        BlobstoreService bs = BlobstoreServiceFactory.getBlobstoreService();
        bs.createUploadUrl("/upload");

        Map<String, List<BlobKey>> blobFields = bs.getUploads(request);
        List<BlobKey> blobKeys = blobFields.entrySet().iterator().next().getValue();
        if (blobKeys != null && !blobKeys.isEmpty()) {
            BlobKey blobKey = blobKeys.get(0);
            System.out.println("MY KEY: "+blobKey.getKeyString());
        }

        return null;
    }

しかし、私はこの例外を受け取ります:

Uncaught exception from servlet
java.lang.IllegalStateException: Must be called from a blob upload callback request.

この行で:

Map<String, List<BlobKey>> blobFields = bs.getUploads(request);

どこが間違っていますか?

4

1 に答える 1

0

以下の例を確認してください。

https://developers.google.com/appengine/docs/java/blobstore/

createUploadUrl() の結果を form タグの action 属性に設定する必要があります。

于 2013-07-10T07:44:19.733 に答える