Wicket - FileUploadField,Ajax和Preview

时间:2012-09-04 09:03:47

标签: wicket asyncfileupload

我正在使用Wicket 1.5,我需要使用FileUploadField构建一个组件来加载图像。

我需要一个Ajax行为来选择它后进行图像预览(不提交整个表单)。

在Google上搜索时,我发现此事件在我选择文件时匹配:

AjaxEventBehavior choose = new AjaxEventBehavior("onChange"){
      private static final long serialVersionUID = 1L;
      @Override
      protected void onEvent(AjaxRequestTarget target) {
        Request request = RequestCycle.get().getRequest();
      }
};

我需要的是将图像流放入需要的小面板中:

byte[] imgBytes

显然我需要相同的流来填充PropertyModel以进行数据库存储。

由于

1 个答案:

答案 0 :(得分:1)

您需要使用AjaxFormSubmitBehavior(将在给定事件上提交整个表单)或AjaxFormComponentUpdatingBehavior(仅提交一个表单组件。我不确定后者是否适用于文件上传,试一试。你可以随时使用前者。

在FileUploadField的模型中,你会找到一个(列表)FileUpload - 看看你得到的方法,有输入流和其他可用的东西,所以你几乎可以对数据做任何事情。