UploadAgent"

From Documentation
Line 19: Line 19:
 
We can cast these components as a <tt>UploadAgent</tt> and perform file uploading. Following is a typical example of single file uploading:
 
We can cast these components as a <tt>UploadAgent</tt> and perform file uploading. Following is a typical example of single file uploading:
  
<source lang="java" start="10" high="14, 15, 16,17,18">
+
<source lang="java" start="10" high="13, 14, 15">
 
@Test
 
@Test
 
public void test() throws Exception {
 
public void test() throws Exception {
File file = getFile();
 
 
DesktopAgent desktop = Zats.newClient().connect("/upload.zul");
 
DesktopAgent desktop = Zats.newClient().connect("/upload.zul");
 
UploadAgent agent = desktop.query("#btn").as(UploadAgent.class);
 
UploadAgent agent = desktop.query("#btn").as(UploadAgent.class);
agent.upload(file, null);
+
agent.upload(getFile(), "text/plain");
agent.finish();
 
agent.upload(file, "text/plain");
 
 
agent.finish();
 
agent.finish();
 
}
 
}
 
</source>
 
</source>
* '''Line 14''': Cast component to <tt>UploadAgent</tt> and keep its reference.
+
* '''Line 13''': Cast component to <tt>UploadAgent</tt> and keep its reference.
* '''Line 15''': Invoke <tt>upload()</tt> method to upload a file.
+
* '''Line 14''': Invoke <tt>upload()</tt> method to upload a file.
* '''Line 16, 18''': Don't forget to invoke <tt>finish()</tt>method.
+
* '''Line 15''': Don't forget to invoke <tt>finish()</tt>method.
* '''Line 17''': After invoking <tt>finish()</tt>method, we can upload file again.
 
  
 
'''Notes'''
 
'''Notes'''

Revision as of 08:13, 2 July 2012

WarningTriangle-32x32.png This page is under construction, so we cannot guarantee the accuracy of the content!


Since 1.1.0

ZATS Mimic introduces the UploadAgent to simulate file uploading operation with consistent usage. UploadAgent supports single or multiple files uploading as ZK components do. Following is typical steps:

  1. Obtain a UploadAgent instance according to your case. Notice that you should use the same instance in one uploading iteration.
  2. Upload a file by invoking upload() method. While uploading multiple files, repeat step 2.
  3. Invoke finish()method when the uploading is done.

Upload Files

Upload Single File

The basic way to upload files is using a component such as Fileupload, Button, Menuitem, Toolbarbutton and so on. [1] If we assign the upload attribute to these components, users can click and select a file to upload through the browser dialog, as following image shows: Zats upload button.png


We can cast these components as a UploadAgent and perform file uploading. Following is a typical example of single file uploading:

@Test
public void test() throws Exception {
	DesktopAgent desktop = Zats.newClient().connect("/upload.zul");
	UploadAgent agent = desktop.query("#btn").as(UploadAgent.class);
	agent.upload(getFile(), "text/plain");
	agent.finish();
}
  • Line 13: Cast component to UploadAgent and keep its reference.
  • Line 14: Invoke upload() method to upload a file.
  • Line 15: Don't forget to invoke finish()method.

Notes

Upload Multiple Files with HTML5 Supported Components

Since ZK 6.0.0, the components allowed uploading file support uploading multiple files at once if they have multiple=true flag and users use the web browsers supported HTML5. [1] Following is a typical example of multiple files uploading:

@Test
public void test() throws Exception {
	File[] files = getFiles();
	DesktopAgent desktop = Zats.newClient().connect("/upload.zul");
	UploadAgent agent = desktop.query("#btn").as(UploadAgent.class);
	agent.upload(files[0], "text/plain");
	agent.upload(files[1], "image/png");
	agent.finish();
}
  • Line 14: Cast component to UploadAgent and keep its reference.
  • Line 15-16: We can upload multiple files at once. *********
  • Line 17: Don't forget to invoke finish()method.


Notes

Upload Files with Fileupload.get()

Another way to upload files is to invoke the static method Fileupload.get().[1] This static method will open a uploading dialog and allow users to upload single or multiple files (if configured), as following image shows.

Zats upload dialog.png

In this kind of case, we can retrieve UploadAgent from casting DesktopAgent. Following is a typical example of file uploading with the static method:

@Test
public void test() throws Exception {
	File[] files = getFiles();
	DesktopAgent desktop = Zats.newClient().connect("/upload.zul");
	desktop.query("#label2").click();
	UploadAgent agent = desktop.as(UploadAgent.class);
	agent.upload(files[0], "text/plain");
	agent.upload(files[1], "image/png");
	agent.finish();
}
  • Line 14-15: After triggering an event led to upload operation, we can cast DesktopAgent as a UploadFile for uploading.
  • Line 16-17: We can upload multiple files at once.
  • Line 18: Don't forget to invoke finish()method.

Notes

Supported Components

Components
Version
Note
DesktopAgent 5, 6
Fileupload 5, 6
Button 5, 6
Menuitem 5, 6
Toolbarbutton 5, 6




Last Update : 2012/07/02

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