Hi

5 views
Skip to first unread message

Madhu

unread,
Sep 26, 2008, 4:54:26 AM9/26/08
to Flex India Community
Am very much new to flex and java integration , i have good experience
on java, i need some information to integration between java servlets
and flex with some code

HISSAM

unread,
Sep 26, 2008, 5:21:06 AM9/26/08
to flex_...@googlegroups.com


Madhu send me your mail id I'll send the java servlet( with web-inf) files and small flex application of upload file


--
-----------------------------
Warm Regards,
 HISSAM,
 Soft Engg,
 iThinkLabs Pvt Ltd.
 India.
website:http://www.ithink-labs.com
           http://www.yureekah.com
------------------------------

santosh bhoyar

unread,
Sep 27, 2008, 12:47:18 AM9/27/08
to flex_...@googlegroups.com
HI,
 
I need same..

 

HISSAM

unread,
Sep 27, 2008, 3:02:51 AM9/27/08
to flex_...@googlegroups.com
//All red lines have the main logic
//This is the JavaUPLOAD FILE


package Main;

import java.io.IOException;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import com.oreilly.servlet.*;
import com.oreilly.servlet.multipart.*;

public class UploadFile extends HttpServlet
{
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private DataInputStream objDataInputStream;
    private int intBitLength_of_File,intByteRead;
    private byte bFileData_byte_array[];
    private String filename="";

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
    {
        try{
            System.out.println(request.getContentType());
            MultipartRequest multi= new MultipartRequest(request,"d:/upFiles/",5*1024*1024);
            Enumeration files=multi.getFileNames();
            File f=null;
                while(files.hasMoreElements())
                {
                    String name=(String)files.nextElement();
                    filename=multi.getFilesystemName(name);
                    String type=multi.getContentType(name);
                    f=multi.getFile(name);
                    System.out.println("The File is "+f);
                   
                }
        }catch(Exception e){
            System.out.println(e.toString());
            e.printStackTrace();
        }
    }

   
   
   
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//This is the Flex-upload application

<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:com="*"
    layout="absolute" width="288"  height="54"
    creationComplete="initCom()" fontFamily="Courier New" fontWeight="bold">
   
    <mx:Metadata>
        [Event(name="uploadComplete", type="flash.events.Event")]
        [Event(name="uploadProgress", type="flash.events.ProgressEvent")]
        [Event(name="uploadCancel", type="flash.events.Event")]
        [Event(name="uploadIOError", type="flash.events.IOErrorEvent")]
        [Event(name="uploadSecurityError", type="flash.events.SecurityErrorEvent")]
    </mx:Metadata>

    <mx:Script>
        <![CDATA[
                      
           
            import mx.controls.*;
            import mx.managers.*;
            import mx.events.*;
            import flash.events.*;
            import flash.net.*;
           
            private var _strUploadUrl:String;
            private var _refAddFiles:FileReferenceList;   
            private var _refUploadFile:FileReference;
            private var _arrUploadFiles:Array;
            private var _numCurrentUpload:Number = 0;   
            //private var  listFiles:DataGrid;      
           
            // Set uploadUrl
            public function set uploadUrl(strUploadUrl:String):void {
                _strUploadUrl = strUploadUrl;
                _strUploadUrl="";
            }
           
            // Initalize
            private function initCom():void {
                _arrUploadFiles = new Array(); //listFiles=new DataGrid();              
                enableUI();
                uploadCheck();
               
                //disableUI();
            }
           
            // Called to add file(s) for upload
            private function addFiles():void {
                _refAddFiles = new FileReferenceList();
                _refAddFiles.addEventListener(Event.SELECT, onSelectFile);
                var objImageFile:FileFilter=new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg; *.jpeg; *.gif; *.png");
                _refAddFiles.browse(new Array(objImageFile));
            }
           
            // Called when a file is selected
            private function onSelectFile(event:Event):void {
                var arrFoundList:Array = new Array();
                // Get list of files from fileList, make list of files already on upload list
                for (var i:Number = 0; i < _arrUploadFiles.length; i++) {
                    for (var j:Number = 0; j < _refAddFiles.fileList.length; j++) {
                        if (_arrUploadFiles[i].name == _refAddFiles.fileList[j].name) {
                            arrFoundList.push(_refAddFiles.fileList[j].name);
                            _refAddFiles.fileList.splice(j, 1);
                            j--;
                        }
                    }
                }
                if (_refAddFiles.fileList.length >= 1) {               
                    for (var k:Number = 0; k < _refAddFiles.fileList.length; k++) {
                        _arrUploadFiles.push({
                            name:_refAddFiles.fileList[k].name,
                            size:formatFileSize(_refAddFiles.fileList[k].size),
                            file:_refAddFiles.fileList[k]});
                    }
                    listFiles.dataProvider = _arrUploadFiles;
                    listFiles.selectedIndex = _arrUploadFiles.length - 1;
                }               
                if (arrFoundList.length >= 1) {
                    Alert.show("The file(s): \n\n• " + arrFoundList.join("\n• ") + "\n\n...are already on the upload list. Please change the filename(s) or pick a different file.", "File(s) already on list");
                }
                updateProgBar();
                scrollFiles();
                uploadCheck();
            }
           
            // Called to format number to file size
            private function formatFileSize(numSize:Number):String {
                var strReturn:String;
                numSize = Number(numSize / 1000);
                strReturn = String(numSize.toFixed(1) + " KB");
                if (numSize > 1000) {
                    numSize = numSize / 1000;
                    strReturn = String(numSize.toFixed(1) + " MB");
                    if (numSize > 1000) {
                        numSize = numSize / 1000;
                        strReturn = String(numSize.toFixed(1) + " GB");
                    }
                }               
                return strReturn;
            }
           
            // Called to remove selected file(s) for upload
            private function removeFiles():void {
                var arrSelected:Array = listFiles.selectedIndices;
                if (arrSelected.length >= 1) {
                    for (var i:Number = 0; i < arrSelected.length; i++) {
                        _arrUploadFiles[Number(arrSelected[i])] = null;
                    }
                    for (var j:Number = 0; j < _arrUploadFiles.length; j++) {
                        if (_arrUploadFiles[j] == null) {
                            _arrUploadFiles.splice(j, 1);
                            j--;
                        }
                    }
                    listFiles.dataProvider = _arrUploadFiles;
                    listFiles.selectedIndex = 0;                   
                }
                updateProgBar();
                scrollFiles();
                uploadCheck();
            }
           
            // Called to check if there is at least one file to upload
            private function uploadCheck():void {
                if (_arrUploadFiles.length == 0) {
                    btnUpload.enabled = false;
                    listFiles.verticalScrollPolicy = "off";
                } else {
                    btnUpload.enabled = true;
                    listFiles.verticalScrollPolicy = "on";
                }
            }
           
            // Disable UI control
            private function disableUI():void {
                btnAdd.enabled = false;
                btnRemove.enabled = false;
                btnUpload.enabled = false;
                btnCancel.enabled = true;
                listFiles.enabled = false;
                listFiles.verticalScrollPolicy = "off";
            }
           
            // Enable UI control
            private function enableUI():void {
                btnAdd.enabled = true;
                btnRemove.enabled = true;
                btnUpload.enabled = true;
                btnCancel.enabled = false;
                listFiles.enabled = true;
                listFiles.verticalScrollPolicy = "on";
            }
           
            // Scroll listFiles to selected row
            private function scrollFiles():void {
                listFiles.verticalScrollPosition = listFiles.selectedIndex;
                listFiles.validateNow();
            }
           
            // Called to upload file based on current upload number
            private function startUpload():void {
                if (_arrUploadFiles.length > 0) {
                    disableUI();
                   
                    listFiles.selectedIndex = _numCurrentUpload;
                    scrollFiles();
                   
                    // Variables to send along with upload
                    var sendVars:URLVariables = new URLVariables();
                    sendVars.action = "upload";
                   
                   
                    var request:URLRequest = new URLRequest();
                    request.data = sendVars;
                     request.url ="http://localhost:8080/JYCreator/UploadFile";// _strUploadUrl;
                    //request.url="http://192.168.1.100/repository/"+_strUploadUrl;//_arrUploadFiles.pop();
                    request.method = URLRequestMethod.POST;
                    _refUploadFile = new FileReference();
                    _refUploadFile = listFiles.selectedItem.file;
                    _refUploadFile.addEventListener(ProgressEvent.PROGRESS, onUploadProgress);
                       _refUploadFile.addEventListener(Event.COMPLETE, onUploadComplete);
                    _refUploadFile.addEventListener(IOErrorEvent.IO_ERROR, onUploadIoError);
                      _refUploadFile.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onUploadSecurityError);
                      //for(var intX:int ; intX<_refAddFiles.fileList.length;intX++){
                              //request.url="http://192.168.1.100/repository/uploadedfilehissam.jpg";//+_refAddFiles.fileList[intX];//+_strUploadUrl;//_arrUploadFiles.pop();
                            _refUploadFile.upload(request, "file", false);
                      //}
                }
            }
           
            // Cancel and clear eventlisteners on last upload
            private function clearUpload():void {
                _refUploadFile.removeEventListener(ProgressEvent.PROGRESS, onUploadProgress);
                _refUploadFile.removeEventListener(Event.COMPLETE, onUploadComplete);
                _refUploadFile.removeEventListener(IOErrorEvent.IO_ERROR, onUploadIoError);
                _refUploadFile.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onUploadSecurityError);
                _refUploadFile.cancel();
                _numCurrentUpload = 0;
                updateProgBar();
                enableUI();
            }
           
            // Called on upload cancel
            private function onUploadCanceled():void {
                clearUpload();
                dispatchEvent(new Event("uploadCancel"));
            }
           
            // Get upload progress
             private function onUploadProgress(event:ProgressEvent):void {
                var numPerc:Number = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
                updateProgBar(numPerc);
                var evt:ProgressEvent = new ProgressEvent("uploadProgress", false, false, event.bytesLoaded, event.bytesTotal);
                dispatchEvent(evt);
            }
           
            // Update progBar
            private function updateProgBar(numPerc:Number = 0):void {
                var strLabel:String = (_numCurrentUpload + 1) + "/" + _arrUploadFiles.length;
                strLabel = (_numCurrentUpload + 1 <= _arrUploadFiles.length && numPerc > 0 && numPerc < 100) ? numPerc + "% - " + strLabel : strLabel;
                strLabel = (_numCurrentUpload + 1 == _arrUploadFiles.length && numPerc == 100) ? "Upload Complete - " + strLabel : strLabel;
                strLabel = (_arrUploadFiles.length == 0) ? "" : strLabel;
                progBar.label = strLabel;
                progBar.setProgress(numPerc, 100);
                progBar.validateNow();
            }
           
            // Called on upload complete
            private function onUploadComplete(event:Event):void {
                _numCurrentUpload++;               
                if (_numCurrentUpload < _arrUploadFiles.length) {
                    startUpload();
                } else {
                    enableUI();
                    clearUpload();
                    dispatchEvent(new Event("uploadComplete"));
                }
            }
           
            // Called on upload io error
            private function onUploadIoError(event:IOErrorEvent):void {
                clearUpload();
                var evt:IOErrorEvent = new IOErrorEvent("uploadIoError", false, false, event.text);
                dispatchEvent(evt);
            }
           
            // Called on upload security error
            private function onUploadSecurityError(event:SecurityErrorEvent):void {
                clearUpload();
                var evt:SecurityErrorEvent = new SecurityErrorEvent("uploadSecurityError", false, false, event.text);
                dispatchEvent(evt);
            }
           
            // Change view state
            private function changeView():void {
                currentState = (currentState == "mini") ? "" : "mini";
            }
           
        ]]>
    </mx:Script>
   
     <!--
    <mx:states>
        <mx:State name="mini">
            <mx:SetProperty name="height" value="60"/>
            <mx:SetProperty name="minHeight" value="60"/>
        </mx:State>
    </mx:states>
    
    <mx:transitions>
        <mx:Transition fromState="*" toState="*">
            <mx:Resize target="{this}" duration="1000"/>
        </mx:Transition>
    </mx:transitions>
    -->
 
      <mx:Canvas width="299" height="80" visible="false">
        <mx:DataGrid id="listFiles" left="0" top="0" bottom="0" right="0"
            visible="false" allowMultipleSelection="true" verticalScrollPolicy="on"
            draggableColumns="false" resizableColumns="false" sortableColumns="false">
            <mx:columns>
                <mx:DataGridColumn headerText="File" dataField="name"  wordWrap="true"/>
                <mx:DataGridColumn headerText="Size" dataField="size" width="45" textAlign="right"/>
            </mx:columns>
        </mx:DataGrid>
    </mx:Canvas>
   
    <mx:ControlBar horizontalAlign="center" verticalAlign="middle" x="0" y="155" width="259">
        <mx:Button id="btnAdd" toolTip="Add file(s)" click="addFiles()" icon="@Embed('assets/add.png')" width="26" useHandCursor="true"/>
        <mx:Button id="btnRemove" toolTip="Remove file(s)" click="removeFiles()" icon="@Embed('assets/delete.png')" width="26" useHandCursor="true"/>
        <mx:ProgressBar id="progBar" mode="manual" label="" labelPlacement="center" width="100%"/>
        <mx:Button id="btnCancel" toolTip="Cancel upload" icon="@Embed(source='assets/close.png')" width="26" click="onUploadCanceled()" useHandCursor="true"/>
        <mx:Button label="Upload" toolTip="Upload file(s)" id="btnUpload" click="startUpload()" icon="@Embed('assets/bullet_go.png')" useHandCursor="true"/>
    </mx:ControlBar>   
</mx:Panel>


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
java-web-inf.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <!-- 
    <listener>
        <listener-class>Main.Me</listener-class>
    </listener>UploadFile
    -->
    <servlet>
        <servlet-name>UploadFile</servlet-name>
        <servlet-class>Main.UploadFile</servlet-class>
    </servlet>
   
    <servlet>
        <servlet-name>Me</servlet-name>
        <servlet-class>Main.Me</servlet-class>
    </servlet>
   
   
  
   
    <servlet-mapping>
        <servlet-name>UploadFile</servlet-name>
        <url-pattern>/UploadFile</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Me</servlet-name>
        <url-pattern>/Me</url-pattern>
    </servlet-mapping>
   
   
    <session-config>
        <session-timeout>  30   </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

hari krishna

unread,
Sep 27, 2008, 10:23:55 AM9/27/08
to flex_...@googlegroups.com

Madhu Kumar

unread,
Sep 28, 2008, 1:58:07 AM9/28/08
to flex_...@googlegroups.com
HI
 
hari this madhu send me about servlets integration with flex
 
Reply all
Reply to author
Forward
0 new messages