0

私は GWTUpload を使用しています。ライブラリはここにあります https://code.google.com/p/gwtupload/

その Web サイトにあるクライアント側のコード例は、次の構造になっています。

 // Attach an image to the pictures viewer
private OnLoadPreloadedImageHandler showImage = new OnLoadPreloadedImageHandler() {
    public void onLoad(PreloadedImage image) {
      //showImageFlowPanel code solution 1
      image.setWidth("75px");
      showImageFlowPanel.add(image);
    }
};


private IUploader.OnFinishUploaderHandler onFinishUploaderHandler = new IUploader.OnFinishUploaderHandler() {
      public void onFinish(IUploader uploader) {
        if (uploader.getStatus() == Status.SUCCESS) {

          new PreloadedImage(uploader.fileUrl(), showImage);

          UploadedInfo info = uploader.getServerInfo();

          String headShotImageUrl="http://"+Window.Location.getHost()+"/" +"images/uploaded/"+info.message;
          //headShotImage code solution 2
          if(!"".equals(headShotImageUrl) && UriUtils.isSafeUri(headShotImageUrl)){
              headShotImage.setUrl(UriUtils.fromString(headShotImageUrl));
          }



        }
      }
    };

この例では(解決策 1) を使用して画像を保存しますが、ユーザーが画像を正常にアップロードした後に URL を取得するshowImageFlowPanel画像を内部に保存したい場合は、上記の (解決策 2) コードを参照してください。headShotImageheadShotImage

わかりました、 headShotImage コードは正常に機能しますが、ユーザーが画像を削除するときにそれを削除する方法がわかりません。ソリューション1のように使用するshowImageFlowPanelと、プログラムは自動的に画像を削除するので、何もする必要はありません。

だから私の質問は、「ユーザーが GWTUpload でアップロードされた画像を削除するときにアクションを呼び出す場所は?

4

1 に答える 1

1

を使用する必要がありますsetOnCancelUploaderHandler。デモから取得したこのコードを見てください。

// When the user clicks a cancel button we get an event
uploader.addOnCancelUploadHandler ( 
  new IUploader.OnCancelUploaderHandler() {
    public void onCancel(IUploader uploader) {
      for (String iname : uploader.getServerMessage().getUploadedFieldNames()) {
        // loadedImages is an temporary table where we are adding all uploaded files
        // indexed by field name
        Widget w = loadedImages.get(iname);
        if (w != null) {
          w.removeFromParent();
        loadedImages.remove(uploader.getInputName());
       }
     }
   }
});
于 2015-01-07T21:25:59.617 に答える