2010-08-05 3 views

risposta

-1

Inserire il codice di seguito in serlet in cui si ricevono i dati, prima di chiamare l'API di datastore.

// Determine the HTTP method 
long maxSize = 1024*1024 * 50; //Limit 50 MB 
boolean isPostMethod = request.getMethod().equals("POST"); 

// Verify the content length 
int contentLength = request.getContentLength(); 
if (isPostMethod && (contentLength < 0 || contentLength > maxSize)) 
    //posted data size is not in acceptable range 
else { 
    // Process Data 
} 
+1

Come ha detto l'OP, questo utilizza l'API blobstore di App Engine, pertanto non è applicabile. –

+0

E da dove chiamerà API blobstore? dall'interno di un servlet? Mi dici quale riga di codice non è applicabile in App Engine? – Manjoor

+1

se leggi i documenti sul blobstore (che è diverso dal datastore) vedrai che nessuna delle righe precedenti è applicabile - il tuo servlet non accetta i dati dall'utente, lo fa il blobstore. il modulo che l'utente invia va direttamente al blobstore, non al servlet. http://code.google.com/appengine/docs/java/blobstore/overview.html –

2

Non si può impedire alla gente di caricare i file che sono troppo grandi (anche se questo sarebbe un buon feature request). Quello che puoi fare è controllare la dimensione del blob caricato e cancellarlo immediatamente se è troppo grande.

+0

Ho archiviato una richiesta di funzione - http://code.google.com/p/googleappengine/issues/detail?id= 3554 – Kyle

+2

questo è ora implementato – systempuntoout