File Upload"
From Documentation
m (remove empty version history (via JWB)) |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
= File Upload with Servlet Thread = | = File Upload with Servlet Thread = | ||
− | When the event thread is disable (default), it is recommended to use <javadoc>org.zkoss.zul.Button</javadoc> or <javadoc>org.zkoss.zul. | + | When the event thread is disable (default), it is recommended to use <javadoc>org.zkoss.zul.Button</javadoc>, <javadoc>org.zkoss.zul.Toolbarbutton</javadoc> or <javadoc>org.zkoss.zul.Menuitem</javadoc> with upload="true" instead. For example, |
<source lang="xml"> | <source lang="xml"> | ||
Line 29: | Line 29: | ||
== File Upload with Event Thread == | == File Upload with Event Thread == | ||
− | If the event thread is disabled, the developer can use <javadoc>org.zkoss.zul.Button</javadoc> or <javadoc>org.zkoss.zul.Toolbarbutton</javadoc> with upload="true" instead. They | + | If the event thread is disabled, the developer can use <javadoc>org.zkoss.zul.Button</javadoc> or <javadoc>org.zkoss.zul.Toolbarbutton</javadoc> with upload="true" instead. They behave the same no matter if the event thread is disabled or not. |
− | However, if the event thread is | + | However, if the event thread is enabled, you can get uploaded Media returned by <javadoc method="get()">org.zkoss.zul.Fileupload</javadoc> and other overloadded static methods. |
<source lang="xml"> | <source lang="xml"> | ||
Line 39: | Line 39: | ||
org.zkoss.util.media.Media[] media = Fileupload.get(-1); | org.zkoss.util.media.Media[] media = Fileupload.get(-1); | ||
if (media != null) { | if (media != null) { | ||
− | for (int i = 0; i | + | for (int i = 0; i < media.length; i++) { |
if (media[i] instanceof org.zkoss.image.Image) { | if (media[i] instanceof org.zkoss.image.Image) { | ||
org.zkoss.zul.Image image = new org.zkoss.zul.Image(); | org.zkoss.zul.Image image = new org.zkoss.zul.Image(); | ||
Line 56: | Line 56: | ||
</source> | </source> | ||
− | As shown, <javadoc method="get(int)">org.zkoss.zul.Fileupload</javadoc> won't return until | + | As shown, <javadoc method="get(int)">org.zkoss.zul.Fileupload</javadoc> won't return until an end user uploads the files (and/or closes the dialog). |
+ | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{ZKDevelopersReferencePageFooter}}: | {{ZKDevelopersReferencePageFooter}}: |
Latest revision as of 05:54, 6 February 2024
File Upload with Servlet Thread
When the event thread is disable (default), it is recommended to use Button, Toolbarbutton or Menuitem with upload="true" instead. For example,
<zk>
<zscript>
void upload(UploadEvent event) {
org.zkoss.util.media.Media media = event.getMedia();
if (media instanceof org.zkoss.image.Image) {
org.zkoss.zul.Image image = new org.zkoss.zul.Image();
image.setContent( (org.zkoss.image.Image) media);
image.setParent(pics);
} else {
Messagebox.show("Not an image: "+media, "Error", Messagebox.OK, Messagebox.ERROR);
}
}
</zscript>
<button label="Upload" upload="true" onUpload="upload(event)"/>
<toolbarbutton label="Upload" upload="true" onUpload="upload(event)"/>
<vbox id="pics" />
</zk>
If you prefer to use a dialog (Fileupload.get()), please take a look at ZK Component Reference: Fileupload for more inormation.
File Upload with Event Thread
If the event thread is disabled, the developer can use Button or Toolbarbutton with upload="true" instead. They behave the same no matter if the event thread is disabled or not.
However, if the event thread is enabled, you can get uploaded Media returned by Fileupload.get() and other overloadded static methods.
<zk>
<button label="Upload">
<attribute name="onClick">{
org.zkoss.util.media.Media[] media = Fileupload.get(-1);
if (media != null) {
for (int i = 0; i < media.length; i++) {
if (media[i] instanceof org.zkoss.image.Image) {
org.zkoss.zul.Image image = new org.zkoss.zul.Image();
image.setContent(media[i]);
image.setParent(pics);
} else {
Messagebox.show("Not an image: "+media[i], "Error", Messagebox.OK, Messagebox.ERROR);
break; //not to show too many errors
}
}
}
}</attribute>
</button>
<vbox id="pics" />
</zk>
As shown, Fileupload.get(int) won't return until an end user uploads the files (and/or closes the dialog).