1. #1
    Sencha User
    Join Date
    Jul 2012
    Posts
    27
    Vote Rating
    0
    dissectcode is on a distinguished road

      0  

    Default Help with file upload

    Help with file upload


    Hi - I have spent 8 days following tutorials and blogs and tried everything. I have this code below...but the command object in the onSubmit method is always null and I don't know why the file isn't being sent by Extjs... Please help

    I am using extjs 3 :

    Code:
    createFileUpload = function()
    {
        var URL = "filePreview.do";
            
            myuploadform= new Ext.FormPanel({
                    fileUpload: true,
                    width: 250,
                    autoHeight: true,
                    bodyStyle: 'padding: 10px 10px 10px 10px;',
                    labelWidth: 50,
                    items:[
                    {
                        xtype: 'fileuploadfield',
                        id: 'filedata',
                        emptyText: 'Select a document to upload...',
                        fieldLabel: 'File',
                        buttonText: 'Browse'
                    }],
                    buttons: [{
                        text: 'Preview',
                        handler: function(){
                   
                            if(myuploadform.getForm().isValid()){
                                form_action=1;
                                myuploadform.getForm().submit({
                                    url: URL,
                                    waitMsg: 'Uploading file...',
                                    headers: {'Content-type':'multipart/form-data'},
                                    success: function(form,action){
                                        alert('Success', 'Processed file on the server');
                                    },
                                    failure: function() { alert("this failed too."); }
                                });
                            }
                        }
                    }]
                })
                
              return myuploadform;
    }
    I have a large form of ~50 items and I am trying to add this Extjs file upload field, with a "preview" button to open the file for verification (requested by the customer). So far I am just trying to save the file I select; I have not implemented the GET part of the preview yet.

    I am using Java 6 with Spring 2.0.8.

    Bean #1 :

    Code:
    package beans;
    
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.ObjectOutputStream;
    
    
    import org.springframework.web.multipart.MultipartFile;
    
    
    public class FilePreviewBean
    {        
        private MultipartFile file;
        
        public void setFile( MultipartFile file )
        {
            this.file = file;
        }
        
        public MultipartFile getFile()
        {
            return file;
        }
    }

    The controller bean :
    Code:
    package controller;
    
    public class FilePreviewController extends SimpleFormController
    {
        
        public FilePreviewController()
        {
        }
        
        protected ModelAndView onSubmit( HttpServletRequest request, HttpServletResponse response, Object command, BindException errors ) throws ServletException, IOException 
        {
    // cast the bean
            FilePreviewBean fp = (FilePreviewBean)command;    
            MultipartFile file = fp.getFile();
            
    
    
            if( file == null )   // <------------- IT'S ALWAYS NULL ?!
            {
                  System.out.println("The file was null.");
                 return null;
            }
            else
            {
                    // print/return an error
                    return null;
             }
        }
        
        protected void initBinder( HttpServletRequest request, ServletRequestDataBinder binder ) throws ServletException
            {
    //binder.registerCustomEditor( byte[].class, new ByteArrayMultipartFileEditor() );
            binder.registerCustomEditor(String.class, new StringMultipartFileEditor());
        }
    
    
    }
    And the bean definitions :

    Code:
        <bean id="multiPartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
            
        <bean id="filePreviewController" class="controller.FilePreviewController"> 
            <property name="commandClass" value="cbeans.FilePreviewBean"/>
            <property name="formView" value="fileuploadform"/>
        </bean>
    I can see that the bean is called from my preview button. The setFile() method should apparently be called automatically by Spring MVC but when I call getFile() it always returns null.

    I was trying to follow this : http://static.springsource.org/sprin...#mvc-multipart

    and it makes a lot of sense; but I have no idea what to do to make the file not equal null!? Please help

  2. #2
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    36,754
    Vote Rating
    828
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      0  

    Default


    So is the request being sent to upload?
    Mitchell Simoens @SenchaMitch
    Sencha Inc, Senior Forum Manager
    ________________
    Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
    https://github.com/mitchellsimoens

    Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/

    Need more help with your app? Hire Sencha Services services@sencha.com

    Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is in print!

    When posting code, please use BBCode's CODE tags.

  3. #3
    Sencha User
    Join Date
    Jul 2012
    Posts
    27
    Vote Rating
    0
    dissectcode is on a distinguished road

      0  

    Default


    Quote Originally Posted by mitchellsimoens View Post
    So is the request being sent to upload?
    by the time it go to onSubmit() the "Object command" is null. I don't know where the disconnect is.

Thread Participants: 1

Tags for this Thread

Turkiyenin en sevilen filmlerinin yer aldigi xnxx internet sitemiz olan ve porn sex tarzi bir site olan mobil porno izle sitemiz gercekten dillere destan bir durumda herkesin sevdigi bir site olarak tarihe gececege benziyor. Sitenin en belirgin ozelliklerinden birisi de Turkiyede gercekten kaliteli ve muntazam, duzenli porno izle siteleri olmamasidir. Bu yuzden iste. Ayrica en net goruntu kalitesine sahip adresinde yayinlanmaktadir. Mesela diğer sitelerimizden bahsedecek olursak, en iyi hd porno video arşivine sahip bir siteyiz. "The Best anal porn videos and slut anus, big asses movies set..." hd porno faketaxi