JumpLoader
Java File Upload Applet

Demo

Zipped uploads

This demo zips files and folders upon add them to the upload queue. For each file/folder from a folder being zipped javascript confirm dialog will appear asking whether this file should be added to zip or skipped. When finished zipping file user will be prompted whether file should be removed from queue or not.

Code:
<applet id="jumpLoaderApplet" name="jumpLoaderApplet"
	code="jmaster.jumploader.app.JumpLoaderApplet.class"
	archive="jumploader_z.jar"
	width="715"
	height="500"
	mayscript>
    	<param name="uc_imageEditorEnabled" value="true"/>
		<param name="uc_uploadUrl" value="partitionedUploadHandler.php"/>
		<param name="uc_partitionLength" value="500000"/>
        <param name="uc_compressionMode" value="zipOnAdd"/>
        <param name="uc_zipDirectoriesOnAdd" value="true"/>
        <param name="uc_directoriesEnabled" value="true"/>
        <param name="uc_zipFileFilterCallback" value="zipFileFilterCallback"/>
        <param name="ac_fireUploaderFileStatusChanged" value="true"/>
</applet>
<script>
	//
	// file/folder being zipped
	var zippingFile = null;

	function zipFileFilterCallback(file, rootFile, uploadFile) {
		//
		// check if we started zipping new file
		if(zippingFile == null) {
			zippingFile = rootFile;
			alert("Zipping new file: " + zippingFile.getAbsolutePath() + ",\n uploadFile: " + uploadFile);
		}
		return confirm("Add file to zip: " + file.getAbsolutePath() + "?");
	}

	/**
	 * file status changed notification
	 */
	function uploaderFileStatusChanged( uploader, file ) {
		//
		// check if file zipping finished
		if(zippingFile != null && file.isReady()) {
			//
			// ask user if need to remove file
			if(confirm("Finished zipping file:" + zippingFile.getAbsolutePath() + ". Remove it?")) {
				//
				// removal not allowed in a callback
				setTimeout("removeFile(" + file.getIndex() + ")");
			}
			zippingFile = null;
		}
	}

	/**
	 * remvoe file from uploader
	 */
	 function removeFile(index) {
	 	var uploader = document.jumpLoaderApplet.getUploader();
	 	var file = uploader.getFile(0);
		var error = uploader.removeFile(file);
		if(error != null) {
			alert(error);
		}
	 }
</script>