2010-04-15 7 views
0
  int start=0,flag=1; 
      long size=blobInfo.getSize(),fetched=0,fetch; 
      byte temp[] = null; 

      while(fetched<size){ 
       if(size-fetched>MAX_BLOB_FETCH_SIZE) 
        fetch=MAX_BLOB_FETCH_SIZE; 
       else 
        fetch=size-fetched; 

       temp=blobstoreService.fetchData(blobKey,fetched,fetch); 

       fetched+=fetch; 
       out.println(temp); 
     } 

J'ai essayé d'imprimer les données du fichier texte téléchargé en utilisant le code ci-dessus, mais cela ne semble pas fonctionner.ne peut pas imprimer les données du blob téléchargé

+0

vous avez fourni un code qui est totalement hors de propos. Dites-nous comment vous obtenez l'article téléchargé. – Bozho

+0

Pourquoi essayez-vous de récupérer et d'afficher le blob à travers votre code? L'idée derrière blobstore est que vous pouvez le servir directement aux utilisateurs - voir les docs pour plus de détails. –

+0

@Bohzo temp = blobstoreService.fetchData (clé blob, récupérée, fetch); ligne dans le code donne la partie de l'élément téléchargé comme byte array.qui s'appelle récupérer les données. –

Répondre

1

Je l'ai mis au point. comme

tandis que (blobInfo.getSize()> positionInBlob) { longue endIndex = Math.min (blobInfo.getSize(), positionInBlob + chunkSize); chunk = blobstoreService.fetchData (blobKey, positionInBlob, endIndex); positionInBlob + = longueur de tronçon;

  for(int j=0;j<chunk.length;j++){ 
      int c=chunk[j]; 
      out.println((char)c); 
     } 

    } 
0

Mes notes Blob: http://code.google.com/p/gwt-examples/wiki/DemoGAEMultiFileBlobUpload

Mon enjoués:

octet privé [] getImageBytes (BlobData blobData) { if (blobData == null) {return null ; }

BlobKey blobKey = new BlobKey(blobData.getKey()); 
if (blobKey == null) { 
    return null; 
} 

ByteArrayOutputStream out = new ByteArrayOutputStream(); 
long filesize = blobData.getSize(); 
int chunkSize = 1024; 
long offset = 0; 
while (offset < filesize) { 

    long limit = offset + chunkSize - 1; 
    if (filesize < limit) { 
    limit = filesize; 
    } 

    System.out.println("offset=" + offset + " limit=" + limit); 

    byte[] b = null; 
    try { 
    b = blobstoreService.fetchData(blobKey, offset, limit); 
    } catch (Exception e) { 
    e.printStackTrace(); 
    return null; 
    } 
    try { 
    out.write(b); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    return null; 
    } 

    offset += chunkSize; 
    if (offset > filesize) { 
    offset = filesize; 
    } 
} 

byte[] filebytes = out.toByteArray(); 

System.out.println("getImageBytes(): filebytes size: " + filebytes.length + " blobData.size=" + blobData.getSize()); 

return filebytes; 

}

+0

les signatures ne sont pas autorisées sur les messages ici [faq # signatures] –

Questions connexes