ZK上传图片并显示它

时间:2012-06-19 10:55:06

标签: image button upload zk

如何使用zk中的按钮上传图像并在浏览器上显示。我试过了,但上传的图片没有出现在浏览器上。请告诉我我的代码有什么问题:

这是zul文件:

<?xml version="1.0" encoding="UTF-8"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?>
<window id="win" use="simple.zkoss.project.WindowController">
    <hbox>
        <button id="uploadButton" label="Upload" upload="true" onUpload="win.uploadImage((UploadEvent) event)" />
        <div id="image" width="100px" height="100px" />
    </hbox>
</window>

和班级:

import org.zkoss.util.media.Media;
import org.zkoss.zk.ui.UiException;
import org.zkoss.zk.ui.event.UploadEvent;
import org.zkoss.zul.Div;
import org.zkoss.zul.Fileupload;
import org.zkoss.zul.Image;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Window;

public class WindowController extends Window {

    private Div image;

    public void uploadImage(UploadEvent event) {

        Media media = event.getMedia();
        if (media instanceof org.zkoss.image.Image) {
            Image im = new Image();
            im.setContent((org.zkoss.image.Image) media);
            im.setParent(image);
        } else {
            Messagebox.show(media + " is not an image", "Error", Messagebox.OK, Messagebox.ERROR);
        }
    }

}

图像只是没有出现在'div'标签中,但是当我选择其他类型的文件(不是图像)时,它会显示消息框,这意味着条件是正确的。谢谢

3 个答案:

答案 0 :(得分:1)

Div图像为空。使用getFellow("image")检索它。

答案 1 :(得分:1)

你需要在onUpload方法上添加注释@Listen(“onUpload =#uploadButton”)

答案 2 :(得分:0)

通过以下方式更改yor div:

<image id="idBtn"/>

和你的方法:

public void onUpload$idBtn(UploadEvent event) {
    Media media = event.getMedia();
    if (media instanceof org.zkoss.image.Image) {
        img_identificacion.setContent((org.zkoss.image.Image) media);
    }
}