2012-03-07 98 views
0

我正在爲GWT上傳文件> 1 MB並鍵入doc和pdf的應用程序。 我正在使用BlobStore。 其實我必須將這個文件存儲在repository.Session這個存儲庫已經創建並且工作正常。如何使用BlobStore上傳DOC和PDF文件的類型

代碼

// Get The URL 
    public void onClick(ClickEvent event) { 
      System.out.println("blob" +blobServices); 
     blobServices 
      .getBlobStoreUploadUrl(callback) ; 
     } 
    }); 

上述RPC調用工作正常,我能夠獲得的URL。 現在我必須將這個URL用於上傳文件的servlet。

AsyncCallback callback = new AsyncCallback() { 

    public void onFailure(Throwable caught) { 
     // TODO Auto-generated method stub 
     caught.printStackTrace(); 
    } 

    public void onSuccess(Object result) { 
    String tmp = result.toString(); 
     uploadForm.setAction(tmp); 

     // Submit the form to complete the upload 
     uploadForm.submit(); 
     uploadForm.reset(); 
    } 
}; 

在服務器端

public class UploadServiceImpl extends HttpServlet { 

     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("upload"); 
    } 

} 

我不知道在這之後該怎麼辦。任何人都可以告訴我該代碼或鏈接以瞭解這部分。 我想要文件的大小和文件的內容。 最重要的是文件的類型.doc和.pdf不是圖像。

回答

0

由於在blobstore調用過程中無法獲取文件名和類型,我所做的是在客戶端窗體上捕獲文件名並將其存儲在隱藏字段中。當用戶使用上傳表格時,您可以從您使用的任何選擇器中獲取文件名稱。然後,當您發佈到UploadServiceImpl時,您可以從

獲取文件名req.getParameter(hiddenfieldname)。