JumpLoader
Java File Upload Applet

Demo

Scaled image upload with javascript callback for target dimension/modifier

This demo uploads single scaled image where target dimension and modifier(s) specified by calling javascript method "imageDimensionCallback", which, in turn, asks it from user via prompt dialog.

Events:

Code:
                  <applet id="jumpLoaderApplet" name="jumpLoaderApplet"
	code="jmaster.jumploader.app.JumpLoaderApplet.class"
	archive="mediautil_z.jar,sanselan_z.jar,jumploader_z.jar"
	width="715"
	height="500"
	mayscript>
    	<param name="uc_sendImageMetadata" value="true"/>
    	<param name="uc_imageEditorEnabled" value="true"/>
        <param name="uc_useLosslessJpegTransformations" value="true"/>
		<param name="uc_uploadUrl" value="uploadHandler.php"/>
        <param name="uc_uploadScaledImages" value="true"/>
        <param name="uc_scaledInstanceNames" value="callback"/>
        <param name="uc_scaledInstanceDimensions" value="callback:imageDimensionCallback"/>
        <param name="uc_scaledInstanceQualityFactors" value="900"/>
        <param name="ac_fireUploaderFileAdded" value="true"/>
		<param name="ac_fireUploaderFileStatusChanged" value="true"/>
        <param name="uc_fileNamePattern" value="^.+\.(?i)((jpg)|(jpe)|(jpeg)|(gif)|(png)|(tif)|(tiff))$"/>
        <param name="vc_fileNamePattern" value="^.+\.(?i)((jpg)|(jpe)|(jpeg)|(gif)|(png)|(tif)|(tiff))$"/>
        <param name="vc_disableLocalFileSystem" value="false"/>
        <param name="vc_mainViewFileTreeViewVisible" value="true"/>
        <param name="vc_mainViewFileListViewVisible" value="true"/>
        <param name="uc_imageRotateEnabled" value="true"/>
</applet>
<script>
	/**
	 * trace event to events textarea
	 */
	function traceEvent( message ) {
		document.debugForm.txtEvents.value += message + "\r\n";
	}
	/**
	 * file added notification
	 */
	function uploaderFileAdded( uploader, file ) {
		traceEvent( "uploaderFileAdded, index=" + file.getIndex() + ", imageInfo=" + uploader.getImageInfo(file) );
		var originalFileLength = file.getLength();
		var newFileLength = 16384;
		file.setLength( newFileLength );
		traceEvent( "file length changed to " + newFileLength + ", orignal length is " + originalFileLength );
	}
	/**
	 * file status changed notification
	 */
	function uploaderFileStatusChanged( uploader, file ) {
		traceEvent( "uploaderFileStatusChanged, index=" + file.getIndex() +
			", status=" + file.getStatus() +
			", content=" + file.getResponseContent() );
		//
		//	add download link if finished
		if( file.isFinished() ) {
			var serverFileName = file.getId() + "." + file.getName() + ".zip";
			var linkHtml = "<a href='/uploaded/" + serverFileName + "'>" + serverFileName + "</a> " + file.getLength() + " bytes";
			var container = document.getElementById( "fileLinks");
			container.innerHTML += linkHtml + "<br>";
		}
	}
	function imageDimensionCallback(uploadFile, scaledInstanceName) {
		var uploader = document.jumpLoaderApplet.getUploader();
		var imageInfo = uploader.getImageInfo(uploadFile);
		var width = imageInfo.getImageWidth(0);
		var height = imageInfo.getImageHeight(0);
		return window.prompt("Scaled image dimension callback, file=" + uploadFile.getName() + " (" +
			width + "x" + height + "), instance=" + scaledInstanceName, "800x600xfit");
	}
</script>
<form name="debugForm">
	<p>Events:<br>
	<textarea name="txtEvents" style="width:100%; font:10px monospace" rows="10" wrap="off" id="txtEvents"></textarea>
	</p>
</form>
<div id="fileLinks">
</div>