File Upload"

From Documentation
m (remove empty version history (via JWB))
 
(11 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{ZKDevelopersGuidePageHeader}}
+
{{ZKDevelopersReferencePageHeader}}
  
== 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.Toolbarbutton</javadoc> with upload="true" instead. For example,
+
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">
 
<zk>
 
<zk>
 
<zscript>
 
<zscript>
void upload(Event event) {
+
void upload(UploadEvent event) {
 
org.zkoss.util.media.Media media = event.getMedia();
 
org.zkoss.util.media.Media media = event.getMedia();
 
if (media instanceof org.zkoss.image.Image) {
 
if (media 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();
image.setContent(media);
+
image.setContent( (org.zkoss.image.Image) media);
 
image.setParent(pics);
 
image.setParent(pics);
 
} else {
 
} else {
 
Messagebox.show("Not an image: "+media, "Error", Messagebox.OK, Messagebox.ERROR);
 
Messagebox.show("Not an image: "+media, "Error", Messagebox.OK, Messagebox.ERROR);
break; //not to show too many errors
 
 
}
 
}
 
}
 
}
Line 30: 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 behaves the same no matter the event thread is disabled or not.
+
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 disabled, it is convenient to use <javadoc method="get()">org.zkoss.zul.Fileupload</javadoc> and other static methods.
+
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 40: 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 &lt; media.length; 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 57: Line 56:
 
</source>
 
</source>
  
As shown, <javadoc method="get(int)">org.zkoss.zul.Fileupload</javadoc> won't return until the end user uploads the files (and/or closes the dialog).
+
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).
  
{{ZKDevelopersGuidePageFooter}}:
+
 
 +
 
 +
{{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).




Last Update : 2024/02/06

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.