Hello:
Here's what I'm using:
- SmartGWT 2.3 (latest night build from 11/11/2010)
- GWT 2.1
- All browsers
I'm trying to figure out if there is a method to determine file size BEFORE uploading a file to the server. Basically I'm trying to set a maximum of 2MB for image files.
Here's the class I'm using to upload:
	Thanks!
Chris
					Here's what I'm using:
- SmartGWT 2.3 (latest night build from 11/11/2010)
- GWT 2.1
- All browsers
I'm trying to figure out if there is a method to determine file size BEFORE uploading a file to the server. Basically I'm trying to set a maximum of 2MB for image files.
Here's the class I'm using to upload:
Code:
	
	package com.mybllc.iPerform.client.components;
import com.google.gwt.event.shared.HandlerRegistration;
import com.mybllc.myapp.client.Utils;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.Encoding;
import com.smartgwt.client.types.FormMethod;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.Dialog;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.events.HasValueChangedHandlers;
import com.smartgwt.client.widgets.events.ValueChangedEvent;
import com.smartgwt.client.widgets.events.ValueChangedHandler;
import com.smartgwt.client.widgets.form.fields.HiddenItem;
import com.smartgwt.client.widgets.form.fields.UploadItem;
import com.smartgwt.client.widgets.layout.HLayout;
public class UploadDialog extends Dialog 
	implements HasValueChangedHandlers {
	
	private DynamicCallbackForm _mainForm;
	private UploadItem _fileUpload = null;
	private String _uploadArgument = null,
	               _appName = null,
	               _command = null;
	private UploadDialog _upd = null;
	public String _fileUploaded = null;
	
	public UploadDialog(String uploadarg, String appname, String command)
	{
		_uploadArgument = uploadarg;
		_appName = appname;
		_command = command;
		createUI();
		_upd = this;
	}
	
	private void createUI()
	{
		setTitle("Upload");
		setWidth(315);
		setHeight(100);
		
		HLayout h = new HLayout();
		h.setWidth100();
		h.setHeight100();
		
		addItem(h);
		
		_mainForm = new DynamicCallbackForm("Upload");
		_mainForm.setAction(Utils.constants.url());
		_mainForm.setEncoding(Encoding.MULTIPART);
		_mainForm.setMethod(FormMethod.POST);
		_mainForm.setWidth100();
		_mainForm.setHeight100();
				
		_mainForm.addFormHandler(new DynamicFormHandler()
		{
			public void onSubmitComplete(DynamicFormSubmitCompleteEvent event) {
				SC.clearPrompt();	
				if(event.getResults().startsWith("1000")){					
					String temp = (String)_fileUpload.getValue();
					if(temp.indexOf("/") >= 0)
						_fileUploaded = temp.substring( temp.lastIndexOf("/") + 1 );
					else if(temp.indexOf("//")>= 0)
						_fileUploaded = temp.substring(  temp.lastIndexOf("//")+1  );
					else if (temp.indexOf("\\")>= 0)
						_fileUploaded = temp.substring(  temp.lastIndexOf("\\")+1  );
					else
						_fileUploaded = (String)_fileUpload.getValue();
					  					
					ValueChangedEvent.fire(_upd,null);
				}
			}
		});
		
		_fileUpload = new UploadItem();
		_fileUpload.setPrompt("Click the button to select the file to upload");
		_fileUpload.setName(_uploadArgument);
		_fileUpload.setWidth(285);
		_fileUpload.setShowTitle(false);
		
		HiddenItem appField = new HiddenItem();
		appField.setName("app");
		appField.setValue(_appName);
		
		HiddenItem cmdField = new HiddenItem();
		cmdField.setName("cmd");
		cmdField.setValue(_command);
		
		HiddenItem heightField = new HiddenItem();
		heightField.setName("height");
		heightField.setValue("275");
		
		_mainForm.setItems(appField,cmdField,heightField,_fileUpload);
		
		h.addMember(_mainForm);
		
		IButton saveButton = new IButton();
		saveButton.setTitle("Save");
		saveButton.setIcon("save.png");
		saveButton.setWidth(75);
		saveButton.addClickHandler(new ClickHandler()
		{
			public void onClick(ClickEvent event) {
				save();
			}			
		});
		
		IButton cancelButton = new IButton();
		cancelButton.setTitle("Cancel");
		cancelButton.setIcon("cancel.png");
		cancelButton.setWidth(75);
		cancelButton.addClickHandler(new ClickHandler()
		{
			public void onClick(ClickEvent event) {
				_upd.destroy();
			}			
		});
		
		HLayout buttonLayout = new HLayout();
		buttonLayout.setAlign(Alignment.RIGHT);
		buttonLayout.setMembersMargin(10);
		buttonLayout.setWidth100();
		buttonLayout.addMember(saveButton);
		buttonLayout.addMember(cancelButton);
				
		setToolbarButtons(buttonLayout);
				
		centerInPage();
		setIsModal(true);
		show();
	}
	
	private void save()
	{
		if(_fileUpload.getValue() == null || ((String)_fileUpload.getValue()).length()==0)
		{
			SC.say("You must select a file before uploading");
			return;
		}
		//Lets limit the size of the file upload if its an image....
		String filename = (String)_fileUpload.getValue();
		if(filename.indexOf(".jpg") > 0 ||
				filename.indexOf(".png") > 0 ||
				filename.indexOf(".gif") > 0){
			
			//Lets check file size....
			
		}
		
		SC.showPrompt("<center>Uploading...</center><br><img src=\"images/ajax-loader.gif\"></img>");
		_mainForm.submitForm();
	}
	public HandlerRegistration addValueChangedHandler(
			ValueChangedHandler handler) {
		return doAddHandler(handler, ValueChangedEvent.getType());
	}
}
Chris

Comment