2012-02-29 7 views
2

gwt-uploadはGAEアプリケーションで動作します。 suggestedとして、私はカスタムアップロードアクションを実装して、データストア内のファイルの記憶域を処理しました。コードは次のようなものです。ご覧のとおりgwt-uploadでUploadActionにリクエストパラメータを送信しました

public String executeAction(HttpServletRequest request, 
     List<FileItem> sessionFiles) throws UploadActionException { 
    logger.info("Starting: DatastoreUploadAction.executeAction"); 
    String executeAction = super.executeAction(request, sessionFiles); 

    for (FileItem uploadedFile : sessionFiles) {    
     Long entityId = new Long(2001); // This is where i wanna use a request parameter 
     InputStream imgStream; 
     try { 
      imgStream = uploadedFile.getInputStream(); 
      Blob attachment = new Blob(IOUtils.toByteArray(imgStream)); 
      String contentType = uploadedFile.getContentType(); 
      appointmentDao.setAppointmentAttachment(entityId, attachment, 
        contentType); 
     } catch (IOException e) { 
      logger.error("Unable to store file", e); 
      throw new UploadActionException(e); 
     } 

    } 

    return executeAction; 
} 

、DAOクラスは、データストアでアップロードされたファイルを格納するための「実体識別子」を必要とします。今私はハードコードされた値で作業しているとうまく行くが、私はentityIDクライアントに要求パラメータとして送信したいと思います。アップロードを行いウィジェットはMultiUploaderです:

private MultiUploader defaultUploader; 

は、それは私が私のUploadActionでそれを使用できるようにリクエストパラメータを設定するMultiUploader -or他Widget-にかのうですか?

答えて

4

はい、クライアント側のコードで設定できます。
方法があります:MultiUploader #setServletPath(java.lang.String)は、たとえば、:サーバー側で

final MultiUploader u = new MultiUploader(); 
    ... 
    ... 
    ... 
    u.setServletPath(u.getServletPath() + "?entityId="+myObject.getEntityId()); 

String entityId= request.getParameter("entityId"); 

は、より多くの情報のためにこれを読む:Sending additional parameters to the servlet

+0

私が欲しかっただけのコード。どうもありがとう! –

関連する問題